No meu projeto ASP.NET MVC, eu tenho este código em uma visão:
[...]
<%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" });
}
%>
Eu estou tentando descobrir, por que esse código nada processa na saída. O controlador eo ChangeVisibility
é implementado.
Respostas:
1 para resposta № 1A sintaxe if else deveria ser algo como abaixo.
<% if (true) { %>
<%= "Condition met" + ... %>
<% }
else { %>
<%= "condition not met" %>
<% } %
Eu nunca trabalhei nesta sintaxe, mas eu pesquisei se mais sintaxe em asp.net mvc e encontrei este link que explica a diferença de sintaxe entre MVC2 e sintaxe MVC3 razon. http://www.csharpcity.com/ifelse-statements-in-mvc3-with-razor/
1 para resposta № 2
Um único sinal @ será suficiente, assim:
@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" });
}
0 para resposta № 3
o que é item neste?
Se você está passando algum modelo do contoller para ver, ele deve ser acessado via Model.item
ou se item é algo no dicionário ViewBag ou ViewdData, então você precisa usar ViewBag.item
0 para a resposta № 4
Você está executando Html.ActionLink()
mas você não está escrevendo o resultado para o documento.
<% 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" }); %>
<% } %>