如何通过formdata传递整个模型对象并将其转换为控制器中的模型类型?
以下是我尝试过的!
JavaScript部分:
model = {
EventFromDate: fromDate,
EventToDate: toDate,
ImageUrl: imgUrl,
HotNewsDesc: $("#txthtDescription").val().trim(),
};
formdata.append("model",model);
然后通过AJAX传递,它将是一个字符串,如果我检查Request.Form["model"]
的值,结果将是相同的,即它将作为字符串接收,并且值将是"[object object]"
有什么方法可以通过formdata传递模型并在控制器中接收模型?
参考方案
如果您的视图基于模型,并且已在<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 popupwindow之后的行如何工作? - javascript好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…
Javascript-Urls的奇怪字符串比较行为 - javascript最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com/…
ajax:从json数组中提取json对象 - javascriptJSON(来自api的内部数组):[{"id":"001", "name":"john", "age":"40"}, {"id":"002", "name":"jane&…
Javascript-从当前网址中删除查询字符串 - javascript单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…
AJAX SQL更新不起作用 - javascript我精简了代码,使这个问题更简单了。这是文件顶部的PHP。if (isset($_POST['action'])) { $field = $_POST['db_field']; $value = $_POST['db_value']; $fields=array('points'=…