微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当值不为null时,清除在ASP.NET MVC视图中输出值的方法

有没有更好的方法来编写下面的代码我有相当多的块,这使得Viewpage中的代码非常混乱.

只有在满足某些条件时才需要输出带有相关标签的数据值,如果该值不为空,则几乎总是如此.

我可以想到的选项是使用response.write来最小化ASP脚本标记的使用,或者格式化网页是这样一种方式,标签显示具有适当的n / a类型值.

<% if (myData.Balance != null)
{ %>                       
   Balance: <%= String.Format("{0:C}",(myData.Balance))%>                        
<% } %>

解决方法

如果在 System.ComponentModel.DataAnnotations中使用 DisplayFormatAttribute类,则可以在视图中显式控制空值的输出,而无需处理内联脚本标记.它本身不会帮助您删除与值绑定的标签,但如果值为null,您至少可以自动替换输出.
[displayFormat(NulldisplayText = "N/A",DataFormatString = "{0:c}")]
public double? Price { get; set; }

<%=Html.displayFor(m => m.Price)%>

使用上面的代码,如果值为null,它将自动显示“N / A”,否则它将使用认货币格式显示值.

作为替代方案,如果你想删除标签并且不想在视图中处理脚本标签,你可以创建自己的HtmlHelper,它采用与Html.displayFor(表达式)相同格式的表达式,然后返回当且仅当映射到该表达式的值不为null时,Html.LabelFor(表达式)和Html.displayFor(表达式)的组合输出.

原文地址:https://www.jb51.cc/aspnet/248638.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐