我打開了一個現有的ASP.NET MVC3項目,該項目以前在安裝了Visual Studio 2012的新建計算機中工作得很好。加載到Visual Studio 2012後Asp.net MVC3應用程序出錯
我現在在下面的代碼中得到空例外。用戶登錄後,將執行以下代碼以執行頁面片段級訪問。
在WebViewPage.User對象上引發null異常。然而,在調試模式下,其實我可以檢查對象的實際情況(見下圖)
public static class WebViewPageExtensions
{
public static bool HasAccess(this WebViewPage pg)
{
if (pg == null) throw new ArgumentNullException("WebViewPage is null");
if (pg.User == null) throw new ArgumentNullException("WebViewPage User is null");
return pg.User.IsInRole(User.ACCESS_LEVEL_A) || pg.User.IsInRole(User.ACCESS_LEVEL_B);
}
}
注:這可能是一些與我的環境的配置方式(web.config中可能?),但並不確定從哪裏開始。事實上,發生這種情況的代碼是在生產環境和以前的開發人員環境中運行的代碼。
所有的引用仍然指在.NET 4.0平臺上運行的框架的ASP.NET MVC3版本。
編輯:這裏是從Razer的視圖callilng代碼:
@if (this.HasAccess()) {
<div>
HTML here
</div>
}
有什麼想法?
你可以顯示調用HasAccess的代碼嗎? –
添加了具有HasAccess()調用的上面的編輯。這是在剃刀模板 – taudep
好吧,你的控制器行動呢?在呈現視圖之前,User對象是否存在於控制器中?你在使用自定義主體嗎? –