Jilet kullanarak açıklayıcı görünümlerinden MVC HtmlHelper uzantıları
3 RTM MVC bir proje için App_Code klasörüne Jilet Bildirge yardımcı oluşturmak için çalışıyordum.
Karşılaştığım sorun MVC HtmlHelper uzantıları, ActionLink gibi, mevcut değildir. Bu derlenmiş yardımcıları System.Web.WebPages.HelperPage
, kaynaklanıyor çünkü Ve onu sunar ama Html
bir özelliği, System.Web.Mvc.HtmlHelper
yerine kendi türü System.Web.WebPages.HtmlHelper
.
Alıyordum hata türden bir örnektir:
'Sistem.Web.Mvc.'Değil HtmlHelper 'ActionLink'için bir tanım içermiyor ve hiç uzatma yöntemi 'ActionLink' türünde bir ilk bağımsız değişken kabul 'Sistem.Web.Mvc.HtmlHelper' olabilir (bir kullanarak eksik bulundu emrini veya bir derleme başvurusu?)
Benim için de tek çözüm kendi HelperPage oluşturmak ve Html özelliği geçersiz kılmak için:
using System.Web.WebPages;
public class HelperPage : System.Web.WebPages.HelperPage
{
// Workaround - exposes the MVC HtmlHelper instead of the normal helper
public static new HtmlHelper Html
{
get { return ((System.Web.Mvc.WebViewPage) WebPageContext.Current.Page).Html; }
}
}
Ben her zaman yardımcı üstündeki şunları yazmak zorunda:
@inherits FunnelWeb.Web.App_Code.HelperPage
@using System.Web.Mvc
@using System.Web.Mvc.Html
@helper DoSomething()
{
@Html.ActionLink("Index", "Home")
}
MVC 3, ya da ben bu kadar zor olması gerekiyordu ben yanlış bir şey yapıyor?
CEVAP
Bu soru için Marcind
's answer bir göz atın. Yaşadıkların App_Code
klasöründe Bildirge manzarası koyarak bir sınırlama var.
App_Code içinde senin yardımcıların koyarak çalışır ama bazı kısıtlamalar vardır bazı MVC senaryolar etkisi (için örnek: standart MVC herhangi bir erişim Html. yardımcıları)
Jilet HtmlHelper Uzantıları (veya görü...
ASP.NET MVC: Gizli alan değeri işlenen...
Dönüştürme biçimini kullanarak jilet D...
Koşullu HTML Jilet MVC3 kullanarak Özn...
javascript içinde kullanarak jilet...