2011-02-18 18 views
8

MVB İskele'yi bir VB.NET MVC3 projesinde deniyorum ve Option Strict ayarlanmış olarak (ve üzerinde olmasını istiyorum) geç bir sorunla karşılaşıyorum.VB.NET'te MVC3 ViewBag ile geç bağlama sorunu

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

ancak VB.NET neredeyse aynı kod:

Bu C# çalışır

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

Sıkı Açık geç bağlayıcı izin vermez derleyici hatası Seçeneği neden olur. Buradaki belgelere bir göz attım: http://msdn.microsoft.com/en-us/library/system.web.mvc.controllerbase.viewbag(VS.98).aspx ama çok yardımcı olmadı.

C# yeni bir boş bir uygulama HomeController yılında ViewBag kullanır ama VB.NET sürümü ViewData, belki bu bir VB.NET sınırlamadır kullandığı dikkat edin.

+0

MVC4 RC için Internet Application şablonunu kullanarak yeni bir VB.Net projesi oluşturdum ve ViewBag özelliğini kullandı. ViewData ile değiştirilinceye kadar oluşturmadı. –

cevap

13

Bu bir Güven sorunu değil. Opsiyon Strict On, geç bağlamaya izin vermez. VB.Net'te, ViewData nesnesini kullanın ve Option Strict On ayarınızı koruyun.

+0

Kullanılan ViewData kullanılan şablonlar göz önüne alındığında, bu benim kullandığım bu yüzden böyle olması gerekir. – CrispinH

0

VB'de ViewBag (ve VB şablonunun neden ViewData kullanıyor olmasının nedeni) ile belediye sorunu, VB bağlayıcısının orta güvende dinamik olarak yazılan şeylerle çalışmadığıdır. Uygulamanızı tam güvene ayarlamayı deneyin.

+0

Web.config dosyasını Tam Güven olarak değiştirdim ancak derleme zamanı hatası için herhangi bir fark yaratmıyor. Daha önce güven sorunlarım olmadı, bu yüzden benim için yeni bir yol olurdu. – CrispinH