基于条件ASP.NET MVC的验证

时间:2014-04-12 09:09:54

标签: asp.net-mvc model-validation

我不确定是否重复问题,但我没有得到正确答案的确切答案

我有强烈打字的视图,我从模型

绑定
//Model

[Required]
public string sample { get; set; }

public bool isAllowed { get; set; }

允许唯一特定的用户组根据isAllowed属性

编辑样本
//View
if (Model.isAllowed)
{
    @Html.EditorFor(model => model.sample)
}

所以现在必需的字段在允许用户的情况下工作,但在其他部分验证火灾中出现了我的问题。

如何处理此问题并禁用其他用户组的必填字段?

或者MVC在为这种情况创建我的视图时是否有任何标准?

2 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,如果isAllowed为false,你可以将它渲染为隐藏属性,所以你的代码应该是这样的

if (Model.isAllowed)
{
    @Html.EditorFor(model => model.sample)
}
else
{
    @Html.HiddenFor(model => model.sample)
}

答案 1 :(得分:0)

您正在寻找RequiredIf验证属性。你可以从这里开始:

http://blogs.msdn.com/b/simonince/archive/2010/06/04/conditional-validation-in-mvc.aspx

然后,如果你也想要客户端验证,你可以看看:

http://blogs.msdn.com/b/simonince/archive/2010/06/11/adding-client-side-script-to-an-mvc-conditional-validator.aspx

此处也提出了类似的问题:

RequiredIf Conditional Validation Attribute