MVC中推薦的將信息傳遞給視圖的方法是創建特定於該視圖的模型(也稱爲視圖模型),例如,
public class IndexViewModel
{
public string Title { get; set; }
public bool IsAuthenticated { get; set; }
}
....
public ActionResult Index()
{
return View(new IndexViewModel()
{
Title = "Index",
IsAuthenticated = UserIsLoggedIn()
});
}
然而,要回答你的問題:
是否有剃刀的方式來訪問功能直客?
如果您使用的是ASP.NET Membership,則可以在請求中使用IsAuthenticated屬性,例如,
@Request.IsAuthenticated
否則,你就需要把這個信息傳遞給視圖(不管是通過ViewBag
/視圖模型等)
或者,你可以寫爲Request
自己的擴展方法,這樣可以讓你直接訪問它的觀點:
@Request.UserLoggedIn()
甚至作爲HtmlHelper
如
public static class HtmlHelperExtensions
{
public static bool UserIsLoggedIn(this HtmlHelper helper)
{
return /* authentication code here */
}
}
然後在你的觀點,你可以使用@Html.UserIsLoggedIn()
我認爲是你所追求的。
使用「ViewModel」類而不是ViewBag。 –
.NET新手,它們是什麼?我可以有一些語法示例:D – Jimmyt1988