在我看来,如果字段中存在错误,我需要设置字段以突出显示红色。我通过字段列表中错误从控制器,类条件设定为errorField如果有匹配:ASP.NET MVC - 更改字符串值在设置时呈现
<td>@(cssClass = errorFields.Contains("Field1") ? "errorField" : "") <input type="text" id="field1" name="field1" value="@form.Field1" class="@cssClass" style="width: 5em;" /></td>
这适用于设置类值,但问题是,我也有它的渲染作为:
<td>errorField <input...>
显然,我不希望errorField在那里呈现。我如何防止这种行为?我可以将它封装在一个隐藏的div中,但是我觉得这只是一个修复它的方法(理所当然,我处理条件CSS的方式可能首先是hacky)。
编辑:
基于大卫的答案,这是我如何着手处理它:
模型我添加了一个列表ErrorFields属性。 也基本上加入相同的方法,得到大卫,除了由于它处理不同的字段,它是:
public string ErrorCode(string field)
{
return ErrorFields.Contains(field) ? "errorField" : "");
}
代替传递错误字段到ViewBag控制器,它把它传递给ErrorFields在模型内。
在视图中,基本上如大卫给:
class="@form.ErrorCode("Field1")"
而且它适当地发挥作用。
这是应该在模型上,而不是在视图中的类型。该视图应该绑定到模型上的数据,模型应该在内部设置其成员。 – David
很酷。就像我说的,我觉得首先它可能是个黑客。你知道我在哪里可以找到类似于这个使用模型正确的例子吗? – Robert