在我的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
已实施。
答案 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" }); %>
<% } %>