通过 formdata 传递复杂的模型集可能是一个挑战,但使用 jQuery 序列化和 MVC 控制器的组合绑定,可以有效地实现这一点。
要将模型集转换为 FormData,您可以利用 jQuery 的 FormData 对象以及表单序列化。如果模型绑定到表单标签内的视图,请使用以下命令将其序列化:
var formdata = new FormData($('form').get(0));
这将自动包含绑定到表单控件的任何模型属性,包括文件输入。
使用AJAX请求将formdata提交给控制器:
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
通过设置processData和contentType 设置为 false,jQuery 将允许按原样发送表单数据。
在控制器中,您可以定义一个强类型方法来绑定到模型集:
[HttpPost] public ActionResult YourActionName(YourModelType model) { }
MVC 的模型绑定系统会根据其属性自动从 formdata 填充模型
如果您需要在表单数据中包含其他非模型属性,只需使用:
formdata.append('someProperty', 'SomeValue');
这允许您使用以下方式扩展表单数据可以在控制器中访问的自定义值。
以上是如何通过 FormData 将复杂模型集传递到 MVC 控制器?的详细内容。更多信息请关注PHP中文网其他相关文章!