如何将整个模型追加到formdata并在MVC中获取它 - javascript

如何通过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对象 - javascript

JSON(来自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'=…