模型如何将Javascript FormData与Asp.net Controllers模型绑定
How model bind Javascript FormData with Asp.net Controllers Model
是否可以将ASP.NET控制器模型与以FormData形式提交数据的ajax请求自动绑定。
在我提供的示例中,我需要使用HttpContext.Current.Request.Form["property_name"]接收数据,因为如果我提供的模型与提交的表单数据相同,则所有值都等于null;
还是ASP.NET模型绑定只适用于JSON请求?
简单代码如下:
视图:
@using (Html.BeginForm("Post", "Test", FormMethod.Post, new { @class="test-form"}))
{
<input type="text" name="firstName"/>
<input type="text" name="lastName"/>
<button type="submit">Submit</button>
}
脚本:
<script>
$('.test-form').on('submit', function (e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: "@Url.Action("TestPost", "Test")",
method: "POST",
data: formData,
processData: false,
success: function(e){
}
});
});
</script>
控制器:
[HttpPost]
public ActionResult TestPost()
{
var firstname = HttpContext.Current.Request.Form["firstName"];
var lastName = HttpContext.Current.Request.Form["lastName"];
return PartialView("TestPost");
}
不工作控制器:
public class User
{
public string firstName { get; set; }
public string lastName { get; set; }
}
[HttpPost]
public ActionResult TestPost(User model) //model values are null
{
return PartialView("TestPost");
}
当您将FormData对象与ajax一起使用时,数据将以multipart/form-data
的形式发送,并且会自动为您设置具有正确边界的内容类型标头
您可以覆盖内容类型,并将tit设置为您想要的任何内容,这就是这里的情况
你可能会想,我没有这么做,你的好朋友jQuery是为你做的。它为您设置了$.ajax(application/x-www-form-urlencoded
)的默认内容类型,这几乎会破坏请求
要停止此操作,即停止jQuery设置内容类型标头,必须将contentType
参数设置为false。
相关文章:
- 模型数据未通过窗体传播到控制器ASP.NET MVC4
- ASP.Net模型到Javascript-将数据从服务器传递到客户端
- 在 ASP 中请求后刷新模型.MVC
- 模型如何将Javascript FormData与Asp.net Controllers模型绑定
- Javascript客户端从ASP.NET MVC后端延迟加载模型
- 我们如何使用Jquery和ASP.NET MVC 4复杂模型数据设置HTML元素的值
- ASP.Net MVC模型绑定到javascript
- 显示具有 MVC 数据绑定视图模型 ASP.NET JQuery 对话框的最佳方式
- 将值绑定到 Asp.Net MVC 应用程序中的模型
- 重定向到具有 jQuery asp.net 和传递模型的新控制器
- asp.net MVC serialize() 在控制器的模型中返回空
- Asp.Net MVC Ajax 视图模型未更新
- 有哪些可能的方法可以将 knockoutjs 视图模型代码与 asp.net mvc 视图分离,并对其进行 mvc 服务
- 如何在 asp.net MVC4 中将模型从视图传递到 javascript
- 如何在 asp.net mvc 中使用 razor 视图模型将 c# guid 值分配给 javascript 变量
- ASP.net MVC/Knockout JS 映射 - 无法更新视图模型
- 如何使用javascript更改ASP .Net MVC Kendo Chart的模型
- 对集合使用getter时,ASP.NET MVC3模型绑定器数据无效
- 允许使用向asp.net mvc4模型添加项目
- D如果模型计数为空,则显示HTML元素-ASP.NET MVC视图