c# - 根据另一个属性在 View 中显示模型属性的最佳实践

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

我正在 ASP.NET 4.0 中创建一个 MVC 4 应用程序。在我看来,我正在显示模型的属性;特别是一个属性可能需要与工具提示超链接,具体取决于模型中的另一个属性。

通过在 View 中显示代码更容易解​​释:

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

我知道这没有任何问题而且它可以正常工作,但我宁愿不必写出 <td></td>两次;上面的示例非常精简,实际上它更加困惑。

有没有办法避免这种情况或有更好的方法来做到这一点?

最佳答案

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

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

关于c# - 根据另一个属性在 View 中显示模型属性的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29123874/

相关文章:

c# - 是否可以更改用户 SFTP 密码 (renci.sshnet)

c# - EF CORE 无时间戳乐观并发

javascript - 单击该 div 中的图像时,如何翻转该 Div?

html - CSS 最小高度不起作用

c# - 使用 SQL Command 对象,您如何检查结果集是否为空?

asp.net - 由于 HttpModule 导致客户端缓存关闭?

javascript - 未从 ajax post 调用 Web 方法

c# - wgs​​ 点与 wgs 定义线段的距离

c# - 用于上传数据的Web服务 : security considerations

javascript - 仅使用 javascript 和 HTML 添加可编辑的 html 行