Asp.net mvc 3 是否不使用LabelFor显示空属性的标签?

Asp.net mvc 3 是否不使用LabelFor显示空属性的标签?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我使用的是MVC3 w/Razor,我有一个模型,它有很多属性,有时是空的。 除了自定义htmlHelper或在视图中为每个LabelFor/DisplayFor对使用if/then之外,是否有一种方法可以不为空或null的属性显示LabelFor/DisplayFor?否。。。。您需要上述解决方案或其他视图模型。对不起 我创建了自己的助手:LabelAndDisplayFor,它检查null/empty,然后选择显示字段 public static MvcHtmlString Labe

我使用的是MVC3 w/Razor,我有一个模型,它有很多属性,有时是空的。
除了自定义htmlHelper或在视图中为每个LabelFor/DisplayFor对使用if/then之外,是否有一种方法可以不为空或null的属性显示LabelFor/DisplayFor?

否。。。。您需要上述解决方案或其他视图模型。对不起

我创建了自己的助手: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 ...
public static MvcHtmlString LabelAndDisplayFor(此HtmlHelper html,System.Linq.Expressions.Expression字段,
bool hideIfEmpty=false){
如果(隐藏){
var v=field.Compile()(html.ViewData.Model);
if(v==null | | string.IsNullOrWhiteSpace(v.ToString())){
返回MvcHtmlString.Empty;
}
}
StringBuilder结果=新建StringBuilder();
结果。追加(“”);
结果。追加(“”);
Append(html.LabelFor(field));
结果。追加(“”);
//……等等。。。