2012-04-23 103 views
0

我有以下代码。ASP.NET MVC简单代码

<% if (Request.Path.ToLower().Contains("something")) 
     {%> 
      <%: Html.ActionLink("Something1", "Something1", "Home") %> 
     <%}else{%> 
      <%: Html.ActionLink("Something2", "Something2", "Home") %> 
     <%}%> 

我真的需要所有那些打开<%并关闭%>吗?有没有更简单的方法来写同一件事?

+0

我很欣赏Razor的所有答案,但是我的项目没有使用Razon,而且它的转换太晚了。 – Tigran 2012-04-23 22:36:12

+0

转换其实并不晚。您不必转换每一页,您可以在处理它们时一次完成一页。尽管您需要复制主页面和布局页面直到转换完成,但您可以毫无问题地混合使用aspx页面和剃须刀页面。 – 2012-04-23 22:45:00

回答

0
<% var s = Request.Path.ToLower().Contains("something") ? "Something1" : "Something2"; %> 
<%: Html.ActionLink(s, s, "Home") %> 

或者,在剃刀:

@{ var s = Request.Path.ToLower().Contains("something") ? "Something1" : "Something2"; } 
@Html.ActionLink(s, s, "Home") 
0

还有更简单的方法:Razor syntax

@if (Request.Path.ToLower().Contains("something")) 
{ 
    Html.ActionLink("Something1", "Something1", "Home"); 
} 
else 
{ 
    Html.ActionLink("Something2", "Something2", "Home"); 
} 

但是您可能需要升级。

0

嗯,你可以使用剃刀的意见/ CSHTML :)

@if(Request.Path.ToLower().Contains("something")) 
{ 
    <div> @Html.ActionLink("Something1", "Something1", "Home") </div> 
}else { 
    <div> @Html.ActionLink("Something2", "Something2", "Home") </div> 
}