【问题标题】:Best practices for displaying a Model Property in View depending on another Property根据另一个属性在视图中显示模型属性的最佳实践
【发布时间】:2015-05-21 08:16:05
【问题描述】:

我正在 ASP.NET 4.0 中创建一个 MVC 4 应用程序。在我的视图中,我正在显示模型的属性;根据模型中的另一个属性,一个属性可能需要带有工具提示的超链接。

在视图中显示代码更容易解​​释:

@if (Model.HasMultipleErrorReasons)
{
   <td data-toggle="tooltip" title="@Model.AllErrors"><a href="#">Multiple</a></td>
}
else
{
   <td>@Model.Error</td>
}

我知道这并没有什么问题,而且它可以正常工作,但我宁愿不必写出&lt;td&gt;&lt;/td&gt; 两次;上面的例子非常精简,实际上它更加混乱。

有没有办法避免这种情况或更好的方法?

【问题讨论】:

  • 你能使用不同的视图吗?或 2 个(或更多)部分视图?如果有很多 if/else 语句,我认为这可能是最好的......

标签: c# html asp.net .net asp.net-mvc


【解决方案1】:

这就是使用模板化渲染引擎时的游戏中断。您可以使用部分视图或HtmlHelper 扩展名以某种方式抽象代码,这样您就不必看到它。但是,使用局部视图会产生轻微但并非微不足道的性能成本,因此如果您最终在同一页面上呈现大量不同的局部视图以用于类似这样的多个操作,您会感觉到它。这对于扩展来说也可能是矫枉过正。不过,如果您可以将代码精简到足以适用于广泛用途的程度,则可能需要创建一个扩展方法。

总的来说,我会说保持原样。

【讨论】:

    猜你喜欢
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    相关资源
    最近更新 更多