我在ASP.NET MVC3 Razor中为两个视图使用相同的模型。例如,我有一个名为“First Name”的文本框。我只需要在一个视图中验证此文本框,而不是在另一个视图中验证。我知道如何在jquery中实现它,但我的要求不同,我不得不在模型中或在特定视图的操作中区分它。
有些事情:
[Required(ErrorMessage="First Name is Required")]
public string FirstName { get; set; }
但是我无法找到如何区分同一模型中两个视图的验证。
有人可以帮帮我吗?
答案 0 :(得分:1)
如果你真的想在没有不同(视图)模型的情况下这样做,你可以在输入标签上放置适当的属性来完成验证,而不是在模型上指定它。
如果你需要以上述方式的要求,你可以这样做:(假设你使用剃刀语法和不引人注意的验证)
@Html.TextboxFor(m=>m.FirstName, new { data_val="true", data_val_required="First name is required" } );
答案 1 :(得分:1)
您的观点有不同的顾虑,因此,在这种情况下,两种观点模型可能是合适的。如果做不到这一点,我认为您可能需要在其他地方进行验证,即不要在视图模型上添加验证属性,但请检查控制器方法......
if(string.IsNullOrEmpty(viewmodel.FirstName))
{
ViewState.AddError("FirstName", "Required");
}
或类似的