在HomeController.cs
代碼:如何從Mvc後面的代碼生成ActionLink?
if (User.Identity.IsAuthenticated)
{
var profile = Profile.GetProfile(User.Identity.Name);
ViewData["Message"] = "Welcome " + profile.FirstName + "!";
}
else
{
ViewData["Message"] = "Welcome to myblog.";
ViewData["RegisterLink"] = "please register <%:Html.ActionLink('Register', 'Register', 'Account')%>.";
}
如果用戶沒有登錄它應該有顯示 歡迎myblog並請註冊(必須是ActionLink的)
和Index.aspx的裏面的內容代碼:
<%: ViewData["RegisterLink"] %>
但是我沒有生成ActionLink請幫忙。
我需要把 「瞭解更多關於Maver icks系統註冊你自己<%:Html.ActionLink('Register','Register','Account')%>「? – Neo 2012-01-13 15:28:05
這裏發生的事情是,你在你的ActionResult中設置ViewData []變量,這恰好被認爲是*服務器端代碼*。一旦設置了這些變量,你的View()就會被調用。由於ViewData []變量在*之前被設置* View實際顯示,所以您可以訪問(並驗證)這些變量中的值。所以......這意味着你可以測試以下內容:if(ViewData [「RegisterLink」] ==「true」)...顯示你的Html.ActionLink(...)。請記住,這段代碼*不在控制器內部。 – Vlince 2012-01-13 15:37:26