捕获特定模型字段的验证状态

时间:2014-10-03 21:06:54

标签: .net asp.net-mvc-4 razor model-validation

我是asp.net中的新手,我试图了解一些关于模型和验证的内容......

我正在使用我公司的html / css框架,它以这种方式进行验证:

<div class="input-group [validation status here]">
    <label for="something">Something</label>
    <input type="text" class="input" name="something" id ="something" placeholder="Stuff"/>
    <div class="validation-info">[validation info here]</div>
</div>

在PHP中,它很容易设置验证状态,只将[验证状态]替换为<?=status;?>并且效果很好。现在,在.NET中使用@Html.EditorFor(x => x.Field)并自动创建类,数据属性和输入。

我正在阅读这篇文章,而最接近的解决方案是使用JQuery。我想直接在.net。

中找到解决方案

然后,我的问题是:它可以在服务器端捕获特定的字段状态,如php?:

<div class="input-group @SomeFunctionToCatchValidationStatus">
    <label for="something">Something</label>
    <input type="text" class="input" name="something" id ="something" placeholder="Stuff"/>
    <div class="validation-info">@SomeFunctionToCatchValidationMessage</div>
</div>    

1 个答案:

答案 0 :(得分:0)

答案是ModelState.IsValidField("Field")。例如,我们可以将它放在ViewBag.ModelState变量中,并使用条件直接在视图中捕获它:

<div class="input-group @((!ViewBag.ModelState.IsValidField("something"))?"error":"")">
    <label for="something">Something</label>
    <input type="text" class="input" name="something" id ="something" placeholder="Stuff"/>
    <div class="validation-info">[validation info here]</div>
</div>