2012-10-03 125 views
1

我打開了一個現有的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版本。

Inspecting the "null" pg.User object

編輯:這裏是從Razer的視圖callilng代碼:

@if (this.HasAccess()) {     
     <div> 
       HTML here 
     </div> 
    } 

有什麼想法?

+0

你可以顯示調用HasAccess的代碼嗎? –

+0

添加了具有HasAccess()調用的上面的編輯。這是在剃刀模板 – taudep

+0

好吧,你的控制器行動呢?在呈現視圖之前,User對象是否存在於控制器中?你在使用自定義主體嗎? –

回答

1

請從鏈接http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253815中閱讀「安裝ASP.NET MVC 4中斷ASP.NET MVC 3 RTM應用程序」一節。按照setps「必需的更新」更新您的MVC 3應用程序。
如果你沒有注意到,MVC4會與VS2012一起安裝,這是記錄的行爲。

+0

好的,這在我十月嘗試使用時並不適用於我。但是,現在在十二月份,它似乎在Visual Studio 2012 Update 1中工作。謝謝。 – taudep

+0

大幫忙,謝謝! – BigJoe714

相關問題