ビューに情報を渡すために 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()
});
}
ただし、質問に答えるには:
Razor で関数に直接アクセスする方法はありますか?
ASP.NET メンバーシップを使用している場合は、リクエストでIsAuthenticatedプロパティを使用できます。
@Request.IsAuthenticated
それ以外の場合は、この情報をビューに渡す必要があります ( ViewBag
/view モデル経由かどうかなど)。
Request
または、ビューで直接アクセスできる独自の拡張メソッドを作成することもできます。
@Request.UserLoggedIn()
またはHtmlHelper
例として
public static class HtmlHelperExtensions
{
public static bool UserIsLoggedIn(this HtmlHelper helper)
{
return /* authentication code here */
}
}
次に、あなたの見解では、あなたが求めているものだと思うものを使用@Html.UserIsLoggedIn()
できます。