2011-12-31 39 views
1

在我的ASP.NET MVC项目,我有这样的代码在一个视图:没有在ASP.MVC 3查看呈现

[...] 

<%if(item.IsActive) 
{ 
    Html.ActionLink("Deactivate", "ChangeVisibility", new { id = item.Id, val = false }, new { @class = "activate-manipulate-news" }); 
} 
else 
{ 
    Html.ActionLink("Activate", "ChangeVisibility", new { id = item.Id, val = true }, new { @class = "activate-manipulate-news" }); 
} 
%> 

我想弄清楚,为什么没有代码的呈现输出。控制器和ChangeVisibility已实施。

回答

1

的,如果别的语法时才应该是这样的下面。

<% if (true) { %> 
<%= "Condition met" + ... %> 
<% } 
else { %> 
<%= "condition not met" %> 
<% } % 

我从来没有做过这个语法,但我用Google搜索如果asp.net的MVC别的语法,发现这个链接,说明MVC2和MVC3拉松语法之间的语法差异。 http://www.csharpcity.com/ifelse-statements-in-mvc3-with-razor/

+0

这就是剃刀语法的用法较差的一类对象。 – rfmodulator 2011-12-31 13:14:51

0

这是什么项目?

如果您传递从位指示一些模型来查看,应该通过Model.item存取或者产品的东西在ViewBag或ViewdData字典,那么你需要使用ViewBag.item

+0

产品从列表 – Tony 2011-12-31 13:02:24

0

您正在执行Html.ActionLink()但您并未将其结果写入文档。

<% if (item.IsActive) { %> 
    <%: Html.ActionLink("Deactivate", "ChangeVisibility", new { id = item.Id, val = false }, new { @class = "activate-manipulate-news" }); %> 
<% } else { %> 
    <%: Html.ActionLink("Activate", "ChangeVisibility", new { id = item.Id, val = true }, new { @class = "activate-manipulate-news" }); %> 
<% } %> 
1

一个@符号就足够了,像这样:

@if(item.IsActive) 
{ 
    @Html.ActionLink("Deactivate", "ChangeVisibility", new { id = item.Id, val = false }, new { @class = "activate-manipulate-news" }); 
} 
else 
{ 
    @Html.ActionLink("Activate", "ChangeVisibility", new { id = item.Id, val = true }, new { @class = "activate-manipulate-news" }); 
}