2011-12-31 37 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" }); 
}