JavaScript如何将整个模型追加到formdata并在MVC中获取
如何通过formdata传递整个模型对象并将其转换为控制器中的模型类型?
以下是我尝试过的!
model = { EventFromDate: fromDate,
EventToDate: toDate,
ImageUrl: imgUrl,
HotNewsDesc: $("#txthtDescription").val().trim(),
};
formdata.append("model",model);
然后将其传递给AJAX,它将是一个字符串,如果我检查Request.Form["model"]
结果的值将是相同的,即它将作为字符串接收,并且value将是"[object
object]"
回答:
如果你的观点是基于模型,并已产生内部控制<form>
的标签,那么你可以序列化的模型来FormData
使用
var formdata = new FormData($('form').get(0));
这还将包括使用生成的所有文件 <input type="file" name="myImage" .../>
并使用发回
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")',
type: 'POST',
data: formdata,
processData: false,
contentType: false,
});
并在您的控制器中
[HttpPost]public ActionResult YourActionName(YourModelType model)
{
}
或(如果您的模型不包含的属性HttpPostedFileBase
)
[HttpPost]public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage)
{
}
如果要添加表格中未包含的其他信息,则可以使用
formdata.append('someProperty', 'SomeValue');
以上是 JavaScript如何将整个模型追加到formdata并在MVC中获取 的全部内容, 来源链接: utcz.com/qa/402074.html