从 MVC 中的表单数据获取整个模型对象
通过表单数据传递整个模型对象时,必须确保它们正确转换回来控制器中的模型类型。以下是如何实现这一点:
JavaScript 实现:
利用 FormData 序列化整个模型,而不是手动附加单个属性:
var formdata = new FormData($('form').get(0));
这还包括表单中存在的任何文件输入。
Ajax请求:
使用 Ajax 发布表单数据,禁用自动处理和内容类型设置:
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
控制器操作:
在控制器中,定义一个接受模型作为参数:
[HttpPost] public ActionResult YourActionName(YourModelType model) { // Perform operations on the model... }
或者,如果模型包含文件输入,则第二个参数应该是文件属性的 HttpPostedFileBase:
[HttpPost] public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage) { // Handle file and perform operations on the model... }
其他数据附录:
如果需要,可以将其他属性附加到表单数据中使用:
formdata.append('someProperty', 'SomeValue');
以上是MVC中如何通过表单数据传递整个模型对象?的详细内容。更多信息请关注PHP中文网其他相关文章!