ASP.MVC 3视图中没有任何内容呈现

时间:2011-12-31 12:52:12

标签: asp.net-mvc-3

在我的ASP.NET MVC项目中,我在视图中有这个代码:

[...]

<%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已实施。

4 个答案:

答案 0 :(得分:1)

if else sytax应该如下所示。

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

我从未使用过这种语法,但我在asp.net mvc中搜索if else语法,并发现此链接解释了MVC2和MVC3 razon语法之间的语法差异。 http://www.csharpcity.com/ifelse-statements-in-mvc3-with-razor/

答案 1 :(得分: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" });
}

答案 2 :(得分:0)

这是什么项目?

如果要将某个模型从控制器传递到视图,应该通过Model.item访问它,或者如果项目是ViewBag或ViewdData字典中的某个项目,那么您需要使用ViewBag.item

答案 3 :(得分: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" }); %>
<% } %>