Asp.net mvc “最佳实践”;“图形”;如果MVC 3中的状态为
刚刚开始从经典ASP转换到MVC,并想知道用于决定HTML元素是否可见或该HTML元素是否可见的if语句的最佳实践 示例:Asp.net mvc “最佳实践”;“图形”;如果MVC 3中的状态为,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,刚刚开始从经典ASP转换到MVC,并想知道用于决定HTML元素是否可见或该HTML元素是否可见的if语句的最佳实践 示例: if (type = 1) { <img src="/Content/Images/gray.jpg" /> } else { <img src="/Content/Images/blue.jpg" /> } if(类型=1) { } 其他的 { } 我在这里看到了几个选择 1.在我的视图中使用if语句(不希望) 2.使用HTML
if (type = 1)
{
<img src="/Content/Images/gray.jpg" />
}
else
{
<img src="/Content/Images/blue.jpg" />
}
if(类型=1)
{
}
其他的
{
}
我在这里看到了几个选择1.在我的视图中使用if语句(不希望)
2.使用HTML助手(将有很多助手=难以使用代码)
3.在我的控制器中创建HTML代码段并传递到我的视图中
4.使用JavaScript在文档加载时显示/隐藏元素。
上面的例子当然可以简化我的问题。非常感谢你的帮助!
/迈克 编辑: 举一个坏例子,这里有一个新的:
if (type = 1)
{
<span class="class1">Something something</span>
}
else
{
<div id="id1">
text
<img src="/Content/Images/gray.jpg" />
</div>
}
if(类型=1)
{
什么东西
}
其他的
{
正文
}
就我个人而言,我开始使用一个单独的层来加载带有html特定信息的viewmodels
public class ViewModel
{
public string ImageName { get; set; }
}
保持视图干净:
<img src="/Content/Images/<%= Model.ImageName %>.jpg" />
.jpg/>
我个人更喜欢使用HtmlHelper扩展或声明性HTML帮助程序来处理除最琐碎的条件表达式之外的所有表达式。但是,在这种情况下,我可能会让我的惰性获胜,并直接在视图中表达条件,如下所示:
<img src="/Content/Images/@(i == 1 ? "gray" : "blue").jpg" />
然后在您的视图中使用它,如下所示:
@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)
尽管它只在一个页面上使用,但它增强了视图的可读性,并且在必要时可以重用
只要我的两分钱。谢谢!但正如我所说的,上面的例子是一个非常简单的例子。想象一下if语句是关于显示a或a的,也可以是关于显示a和a或什么都不显示的语句。与我正在编写的实际代码相比,这仍然是一个非常简单的例子。谢谢!这个例子没有详细说明在我看来,x很重要,直到事情变得如此复杂,应该提供一个完全不同的视图。好吧!那么你会如何处理我发布的新示例?我曾想过使用HtmlHelpers,但开始思考,什么是最好的:在我的部分视图中使用10个if语句,或者在特定视图中使用10个额外的HtmlHelpers…我很瘦k这会让事情变得更糟。你没有把所有的UI都放在一个页面上,而是把逻辑分割开来,然后有人来搜索。广播意图很棒,但当你无法轻松浏览代码库时就不行了。@jfar-我知道你是怎么想的。就像我说的,只有我的2美分。我通常运行高度基于约定的项目,所以我知道如果我“我看到了这一点,我会在那个文件中找到帮助者。我曾经使用经典ASP,所以我无法忍受视图中的代码:)是的,我想每个人都有自己的。我正在从事一个项目,在这个项目中,你的技术被提升到了一个极端的水平,很难改变。