我正在使用MVC3 w / Razor,我有一个模型,有很多属性,有时是空的。 除了自定义的htmlHelper,或者在每个LabelFor / DisplayFor对的视图中使用if / then之外,有没有办法不为空或null的属性显示LabelFor / DisplayFor?
答案 0 :(得分:1)
否....您需要上述解决方案或其他视图模型。抱歉!
答案 1 :(得分:1)
我创建了自己的帮助器:LabelAndDisplayFor检查null / empty,然后选择显示该字段。
public static MvcHtmlString LabelAndDisplayFor<tModel, tValue>(this HtmlHelper<tModel> html, System.Linq.Expressions.Expression<Func<tModel, tValue>> field,
bool hideIfEmpty = false) {
if (hideIfEmpty) {
var v = field.Compile()(html.ViewData.Model);
if (v == null || string.IsNullOrWhiteSpace(v.ToString())) {
return MvcHtmlString.Empty;
}
}
StringBuilder result = new StringBuilder();
result.Append("<div class='display-line'>");
result.Append("<div class='display-label'>");
result.Append(html.LabelFor(field));
result.Append("</div>");
// ... etc ...