猿问

如何将整套模型附加到formdata并在MVC中获取它

如何将整套模型附加到formdata并在MVC中获取它

如何通过formdata传递整个模型对象并将其转换为控制器中的模型类型?

以下是我尝试过的!

JavaScript部分:

model = {
             EventFromDate: fromDate,
             EventToDate: toDate,
             ImageUrl: imgUrl,
             HotNewsDesc: $("#txthtDescription").val().trim(),
        };formdata.append("model",model);

然后通过AJAX传递它,它将是一个字符串,如果我检查Request.Form["model"]结果的值将是相同的,那就是它将作为字符串接收并且值将是"[object object]"

有没有办法通过formdata传递模型并在控制器中接收它?


江户川乱折腾
浏览 792回答 3
3回答

aluckdog

如果您的视图基于模型并且您已在<form>标记内生成控件,则可以将模型序列化为FormData使用var&nbsp;formdata&nbsp;=&nbsp;new&nbsp;FormData($('form').get(0));这还包括使用生成的任何文件&nbsp;<input type="file" name="myImage" .../>然后用它回发$.ajax({ &nbsp;&nbsp;url:&nbsp;'@Url.Action("YourActionName",&nbsp;"YourControllerName")', &nbsp;&nbsp;type:&nbsp;'POST', &nbsp;&nbsp;data:&nbsp;formdata, &nbsp;&nbsp;processData:&nbsp;false, &nbsp;&nbsp;contentType:&nbsp;false,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});并在你的控制器[HttpPost]public&nbsp;ActionResult&nbsp;YourActionName(YourModelType&nbsp;model){}或(如果您的模型不包含属性HttpPostedFileBase)[HttpPost]public&nbsp;ActionResult&nbsp;YourActionName(YourModelType&nbsp;model,&nbsp;HttpPostedFileBase&nbsp;myImage){}如果要添加表单中没有的其他信息,可以使用附加信息formdata.append('someProperty',&nbsp;'SomeValue');

慕神8447489

在视图方面,如果您使用的是ajax,$('#button_Id').on('click',&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;Datas=JSON.stringify($('form').serialize()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.ajax({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;"POST", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contentType:&nbsp;"application/x-www-form-urlencoded;&nbsp;charset=utf-8", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'@Url.Action("ActionName","ControllerName")', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:Datas, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cache:&nbsp;false, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataType:&nbsp;'JSON', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;async:&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function&nbsp;(data)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;});在控制器方面,&nbsp;[HttpPost] &nbsp;public&nbsp;ActionResult&nbsp;ActionName(ModelName&nbsp;modelObj) &nbsp;{ &nbsp;//Some&nbsp;code&nbsp;here &nbsp;}
随时随地看视频慕课网APP
我要回答