我是MVC的新手。现在我正在学习VS2010,ASP.NET MVC 4。
<% %>
对我不起作用。使用@
对我来说很乏味。
如果我编写大量if{}
的大型代码,那么<%
将非常有用。
你可以帮我看一下<% %>
我需要这样:
The customer id is <%= Model.Id %> <br />
The customer Code is <%= Model.CustomerCode %> <br />
<% if (Model.Amount > 100) {%>
This is a priveleged customer
<% } else{ %>
This is a normal customer
<%} %>
但我只能这样使用:
<div>
@{
if(Model.Amount > 70000.00)
{
Response.Write("This is a Privelleged Customer"); <br />
}
else
{
Response.Write("This is a Normal Customer"); <br />
}
}
The Customer Id is: @Model.Id <br />
The Customer Name is: @Model.Code <br />
</div>
答案 0 :(得分:4)
你真的认为前者比后者更具可读性吗?我没有。 Razor语法仍然存在,因此您最好习惯它并删除有关ASP.NET WebForms的所有知识。另外,为什么使用古老的Response.Write()
?
类似Razor的代码实现如下:
@if(Model.Amount > 70000.00)
{
<text>This is a Priveleged Customer</text><br />
}
else
{
<text>This is a Normal Customer</text><br />
}
如果你问我,这是非常可读的。有关视图引擎的比较,请参阅ASP.NET MVC View Engine Comparison,每个视图引擎根据优缺点提供自己的语法。
如果您确实坚持使用WebForms语法,请按照Changing View Engine after Project has been created中的说明应用WebFormViewEngine。
答案 1 :(得分:2)
我同意CodeCaster's answer - Razor视图引擎仍然存在,并且肯定比ASPX更具可读性。
但是,如果您确实需要更改它,您可以。
进入Global.asax.cs
并找到Application_Start()
方法。
在那里,添加以下代码:
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new WebFormViewEngine());
这将使您恢复使用旧式视图引擎。
此外,您可以选择首次设置项目时使用的引擎 - 以及将来设置时使用的引擎。
希望这会有所帮助:)
答案 2 :(得分:0)
您可以使用@:在服务器标签内显示文本
<div>
@{
if(Model.Amount > 70000.00)
{
@:This is a Privelleged Customer <br />
}
else
{
@:This is a Normal Customer <br />
}
}
The Customer Id is: @Model.Id <br />
The Customer Name is: @Model.Code <br />
</div>
答案 3 :(得分:0)
你可以在你的模型中添加另一个属性(如果你能够)并在那里处理逻辑:
public string CustomerText
{
get
{
return Amount > 70000.00 ? "This is a Priveleged Customer" : "This is a Normal Customer";
}
}
在你看来消费它:
<text>@Model.CustomerText</text><br />