В моя 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
се прилага.
Отговори:
1 за отговор № 1Ако иначе ситаксът е нещо като по-долу.
<% if (true) { %>
<%= "Condition met" + ... %>
<% }
else { %>
<%= "condition not met" %>
<% } %
Аз никога не съм работил по този синтаксис, но аз googled за ако иначе синтаксис в asp.net mvc и намери тази връзка, която обяснява синтаксисната разлика между MVC2 и MVC3 разon syntax. http://www.csharpcity.com/ifelse-statements-in-mvc3-with-razor/
1 за отговор № 2
Само един знак @ ще е достатъчен, както следва:
@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 за отговор № 3
какво е елемент в това?
Ако преминавате някой модел от контолер за преглед, той трябва да бъде достъпен чрез Model.item
или ако елементът е нещо в речника ViewBag или ViewdData, тогава трябва да използвате ViewBag.item
0 за отговор № 4
Вие изпълнявате 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" }); %>
<% } %>