刚开始从传统的ASP转换到MVC,并想知道if语句的最佳实践,该语句用于确定HTML元素是否应可见,或决定HTML元素是否应可见。
示例:
if (type = 1)
{
<img src="/Content/Images/gray.jpg" />
}
else
{
<img src="/Content/Images/blue.jpg" />
}我在这里看到了几个选择。
<代码>G210
当然,上面的例子是对我的问题的简化。非常感谢你的帮助!
/Mike
编辑:举了一个不好的例子,下面是一个新的例子:
if (type = 1)
{
<span class="class1">Something something</span>
}
else
{
<div id="id1">
text
<img src="/Content/Images/gray.jpg" />
</div>
}发布于 2011-02-24 21:26:04
我个人更喜欢使用HtmlHelper扩展或声明性HtmlHelper来处理大多数琐碎的条件表达式。然而,在这种情况下,我可能会让我的懒惰占上风,并直接在视图中表达条件,如下所示:
<img src="/Content/Images/@(i == 1 ? "gray" : "blue").jpg" />编辑
对于更复杂的场景,绝对可以使用HTML助手。如果您使用的是Razor语法,则可以通过将它们放入~/Views/Helpers目录中来创建声明性助手。它们的编写和使用都非常干净。
但创建一个好帮手背后的想法是它封装了一个意图。这很容易通过尝试给你的帮助者一个名字来测试。如果名称是IfOneThenShowSomethingElseGrayImage,您应该尝试将其进一步拆分。
因此,让我们假设您示例中的意图是根据用户类型显示有关当前用户的信息。你可以像这样创建一个帮助器:
@helper UserType(int type) {
@if (type == 1) {
<span class="class1">Something something</span>
} else {
<div id="id1">
text
<img src="/Content/Images/gray.jpg" />
</div>
}
}然后在视图中使用它,如下所示:
@UserType(Model.UserType)尽管它只在一个页面上使用,但它增强了视图中的可读性,并且可以在必要时重用。
这只是我的两个观点。
发布于 2011-02-24 21:23:20
就我个人而言,我开始使用一个单独的层来加载带有html特定信息的视图模型。
public class ViewModel
{
public string ImageName { get; set; }
}保持视图的整洁:
<img src="/Content/Images/<%= Model.ImageName %>.jpg" />https://stackoverflow.com/questions/5105147
复制相似问题