GON*_*ale 2 .net c# model-binding asp.net-mvc-3
我一直遇到这样的问题,但一劳永逸地想知道发生了什么:)
我有一个简单的ASP.NET MVC视图绑定到视图模型类MemberViewModel.
MemberViewModel包含一个Linq To Sql实体对象,我的表单主要绑定到该对象Member,但是我确实有大约三个其他表单字段绑定到一个名为的子类Member.User.
Member包含有关用户的个人信息,并Member.User包含用户名+密码信息,这两个信息都存储在数据库的单独表中.
现在正如我所说,视图的模型对象使用了一个自定义视图模型类MemberViewModel,其内容如下:
[Bind(Exclude = "EncryptedPassword")]
public class MemberViewModel : ViewModel
{
public Member Member { get; set; }
public string Password { get; set; }
[DisplayName("Confirm Password")]
public string ConfirmPassword { get; set; }
public MemberViewModel() { }
public MemberViewModel(Member member, SelectList countryList)
{
Member = member;
CountryList = countryList;
}
}
Run Code Online (Sandbox Code Playgroud)
你可以看到只有一个引用Member.成员是一个Linq to Sql对象,里面有它的引用User.Password+ ConfirmPassword并且仅形成字段,并且在Linq To Sql中没有等效的对应项.
现在我的问题是,每当我提交表单时,我的ModelState.IsValid属性总是返回false,说明模型错误The EncryptedPassword field is invalid.
现在,无论我添加[Bind(Exclude = "Member.User.EncryptedPassword")]到我MemberViewModel作为一个阶级属性,或在局部类User本身[Bind(Exclude = "EncryptedPassword")]在ModelState.IsValid不断地指出它是无效的.
最基本的问候,GONeale
| 归档时间: |
|
| 查看次数: |
2818 次 |
| 最近记录: |