将数据写入视图的更短方式

时间:2010-09-27 13:42:19

标签: asp.net asp.net-mvc

我试图找出是否有一种更短的方式将数据写入视图而不是我目前正在做的事情。这就是我目前的观点:

<td>
   <%
      if (Model.AnnualIncome != null)
      {
         %>
         <%: "R " + Model.AnnualIncome.ToString() %>
         <%
       }
   %>
</td>

是否有一种较短的显示年度收入的方式,而不是全部&lt; %%&gt;?

由于

5 个答案:

答案 0 :(得分:2)

这有用吗?

<td>
     <%: Model.AnnualIncome != null ? "R " + Model.AnnualIncome : string.Empty %>

</td>

答案 1 :(得分:2)

如何使用ViewModel格式化视图的数据?

public class AccountViewModel
{
    public decimal AnnualIncome { get; set; } 

    public string GetAnnualIncome()
    {
        return Model.AnnualIncome != null ? "R" + AnnualIncome : string.Empty;
    }
}

然后在您看来,您可以执行以下操作:

<td><%= Model.GetAnnualIncome() %></td> 

答案 2 :(得分:1)

<%=string.Format("R {0}", Model.AnnualIncome) %>这样的东西应该更简洁。

编辑:糟糕,只是意识到你不想打印“R”,如果它为空。在这种情况下,像这样:

<%=(Model.AnnualIncome == null ? "" : string.Format("R {0}", Model.AnnualIncome)) %>

答案 3 :(得分:1)

如果您不喜欢&lt; %%&gt;,则可以使用其他View Engine无处不在。

Razor(CSHTML)尚未发布,但您可以下载它的预览。我知道还有NHaml和另外一个。

答案 4 :(得分:1)

MVC团队正在开发一个名为ViewEngine的新Razor,这样可以提供更好的语法:

http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx