2011-02-18 50 views
8

我嘗試了MVC腳手架在一個VB.NET MVC3項目中,並遇到與Option Strict設置(以及我希望它)後期綁定的問題。VB.NET中的MVC3 ViewBag的後期綁定問題

這個工作在C#:

public ActionResult Create() 
{ 
    ViewBag.PossibleTeams = context.Teams; 
    return View(); 
} 

但實際上在VB.NET同一代碼:

Public Function Create() As ActionResult 
    ViewBag.PossibleTeams = context.Teams 
    Return View() 
End Function 

使編譯器錯誤選項嚴格On不允許後期綁定。我看看這裏的文檔:http://msdn.microsoft.com/en-us/library/system.web.mvc.controllerbase.viewbag(VS.98).aspx,但它不是很有幫助。

我注意到,在C#中的新的空應用程序使用ViewBagHomeController但VB.NET版本使用ViewData,所以也許這是一個VB.NET的限制。

+0

我剛剛使用MVC4 RC的Internet應用程序模板創建了一個新的VB.Net項目,它使用了ViewBag屬性。直到我將其替換爲ViewData後才創建。 – 2012-06-18 06:18:54

回答

13

這不是一個信任問題。 Option Strict On禁止後期綁定。在VB.Net中,改爲使用ViewData對象並保持您的Option Strict On設置。

+0

鑑於使用ViewData的模板,我認爲這一定是這種情況,所以這就是我一直在使用的。 – CrispinH 2011-02-25 09:12:55

0

VB中的ViewBag的市長問題(以及爲什麼VB模板使用ViewData)的原因在於VB綁定程序不適用於在中等信任中輸入爲動態的東西。嘗試將您的應用設置爲完全信任。

+0

我將web.config文件更改爲完全信任,但它對編譯時錯誤沒有任何影響。我之前沒有信任問題,所以這對我來說是一個新的途徑。 – CrispinH 2011-02-18 20:50:22