/ / Nothing processa no ASP.MVC 3 View - asp.net-mvc-3

Nada processa no ASP.MVC 3 View - asp.net-mvc-3

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 № 1

A 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" }); %>
<% } %>