ASP.NET MVC3模型验证

时间:2011-11-24 13:56:53

标签: asp.net-mvc-3 razor

我在ASP.NET MVC3 Razor中为两个视图使用相同的模型。例如,我有一个名为“First Name”的文本框。我只需要在一个视图中验证此文本框,而不是在另一个视图中验证。我知道如何在jquery中实现它,但我的要求不同,我不得不在模型中或在特定视图的操作中区分它。

有些事情:

[Required(ErrorMessage="First Name is Required")]
public string FirstName { get; set; }

但是我无法找到如何区分同一模型中两个视图的验证。

有人可以帮帮我吗?

2 个答案:

答案 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");
}

或类似的