模型如何将Javascript FormData与Asp.net控制器模型绑定
是否可以将ASP.NET控制器模型与提交数据的ajax请求自动绑定 在我提供的示例中,我需要使用HttpContext.Current.Request.Form[“property\u name”] 接收数据,因为如果我提供的模型与提交的表单数据相同,则所有值都等于null 还是ASP.NET模型绑定只对JSON请求有效 简单代码如下: 视图: 控制器不工作:模型如何将Javascript FormData与Asp.net控制器模型绑定,javascript,c#,asp.net,ajax,asp.net-mvc,Javascript,C#,Asp.net,Ajax,Asp.net Mvc,是否可以将ASP.NET控制器模型与提交数据的ajax请求自动绑定 在我提供的示例中,我需要使用HttpContext.Current.Request.Form[“property\u name”] 接收数据,因为如果我提供的模型与提交的表单数据相同,则所有值都等于null 还是ASP.NET模型绑定只对JSON请求有效 简单代码如下: 视图: 控制器不工作: [HttpPost] public ActionResult TestPost() { var
[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。在ajax中使用FormData对象时,数据将作为多部分/表单数据发送
,并且内容类型标题将自动为您设置正确的边界。您可以覆盖内容类型并将tit设置为您想要的任何内容,这就是此处发生的情况。
你可能会想,我没有这么做,是你的好朋友jQuery为你做的。它为您设置了$.ajax的默认内容类型(
application/x-www-form-urlencoded
),这几乎把请求搞砸了。要停止此操作,即停止jQuery设置内容类型头,您必须将
contentType
参数设置为false。使用Ajax.BeginForm了解更多信息,请检查此链接您忘记了contentType:false,
@rashfmnb如果我的Ajax请求在js文件中怎么办?@Musa它确实做到了,有些人。想解释一下原因/方法吗?(我会尝试用谷歌搜索我自己,但…)请查看此链接使用Ajax.BeginForm了解更多信息请查看此链接您忘记了ContentType:false,
@rashfmnb如果我的Ajax请求在js文件中怎么办?@Musa它确实做到了,真是不可思议。想解释一下为什么/怎么做吗?(我会尝试用谷歌搜索自己,但…)请查看此链接
[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");
}