嗨,我在我的控制器中有一个动作,我在等待ModelBinder将传入的dont数据绑定到我的操作参数,但是它不这样做,我不知道。我只使用TryUpdateModel()手动绑定它们,但不想使用它。属性名称和后置数据是相同的,为什么不能绑定它们?
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}public ActionResult Update(User user)
{
// TODO
}发送数据到“我的行动”的javaScript代码:
newData = {
"FirstName":"Yucel"
"LastName": "Akpınar",
"Email": "yucelakpinar",
"Password": "123456"
};
$.ajax({
type: "POST",
dataType: "json",
data: newData,
url: "/Profile/Update",
success: function() {
debugger;
}
});发布于 2009-11-05 09:54:40
它不能工作的原因是,请求的有效负载是一个JSON对象,当前的模型绑定器无法解析这个对象(实际上,模型绑定器没有检索它的任何值,值提供者是这样做的)。我们已经在v2中实现了这个场景,但是要使它在v1中工作,您必须自己添加对它的支持。
发布于 2009-11-09 13:28:10
我解决了问题。原因是ModelState无效。
由于验证属性ModelBinder不绑定属性,如果存在NotValid情况.
[MetadataType(typeof(UserMetaData))]
public partial class User
{
public string FirstName { get; set; }
....
....
}
public class UserMetaData
{
[Required]
[RegularExpression("[a-zA-Z]{2,30}")]
public string FirstName { get; set; }
....
....https://stackoverflow.com/questions/1679326
复制相似问题