如果使用ajax请求数据,则在asp.net表单中提交时模型为null
Model null on submit in asp mvc.net form if using ajax to request data
我想知道如何正确操作或规避我遇到的问题。
我有一个ASP MVC。. NET 5页面和模型。在[HttpGet]Index()中,我准备模型并将其传递给视图。该视图包含@Html。编辑器和@Html。用于模型属性的输入字段。最后是一个单一的提交按钮,用于将表单发送/POST到控制器及其[httppost]Index(MyModel模型)控制器方法,该方法接受模型作为输入参数。一切都很好。现在我想动态地改变下拉菜单的内容,当用户选择最上面的下拉菜单,选择一个条目,那么其他下拉菜单也会改变。
我发现这样做的方式是使用javascript和。onchange(function(){.$.ajax(postdata)})来生成post请求,该请求被发送到控制器方法,控制器生成json-reply与新的字符串列表,然后这些字符串被放入其他下拉列表。这很好。我可以单击下拉菜单,选择值,其他下拉菜单可以动态更改内容,等等。一切都很好。
视图包含一些其他字段,用于用户名,或电话号码字段,等等。
当用户填写数据,选择下拉菜单,最后提交控制器方法接收到的表单和空/null模型!为什么控制器接收一个空模型?
我想我找到答案了。只有表单中的第一个POST获得了所有可用的信息,后面的POST不再拥有所有可用的信息。浏览器接收页面,页面内部是表单标记。在这个表单主体中,一个元素被点击/更改——下拉菜单——并使用javascript生成一个post请求到服务器。一旦这个POST完成-小回复用于更新表单主体内的其他下拉菜单-浏览器"内存"中的所有进一步的"数据"似乎都丢失了。当用户单击最后一个提交按钮并向服务器生成POST时,浏览器发送..什么都没有。因此,传递给控制器的模型为空。
所以:我如何使用javascript/ajax/jquery动态更新控件与位信息从控制器,而在一个ASP MVC。. NET 5表单,而不使用POST请求,这似乎打破了表单处理?
或者:我如何将我的模型数据发送到最后的提交按钮到控制器,使用javascript/ajax/jquery,并接收一个新的视图作为回复?
问题是我命名了模型' model '的属性,这破坏了处理。一旦我重命名它的页面最终提交开始工作。有时候事情就是这么简单,但一开始却带来了看不见的后果。
- Jquery提交表单而不刷新
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 每次提交表单时都会重新加载网页
- Razor中的自动提交表单
- 使用 JavaScript 自动提交表单
- 点击相同的按钮打开模型,然后提交表单
- 添加和删除隐藏字段数组中的值,而不提交表单
- 使用Ajax提交表单
- jQuery:使用“jQuery验证”后无法提交表单's远程验证
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- 有登录表单时无法提交表单
- 带有select的jquery提交表单不起作用
- 如何防止回车键提交表单,但仍然允许回车工作
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- 在提交表单之前确定重复值
- 如何创建动态ajax提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 当触发下拉列表的onchange事件时,使用JavaScript提交表单
- 提交表单后,Watir文本框输入未持续(重置为以前的文本框输入)