在ASP.NET MVC 3中,默认的HTML助手来自System.Web.Mvc.Html
。我想使用System.Web.WebPages.Html
中的助手。尽我所能,我似乎无法获得实例或访问System.Web.WebPages.Html
。这是我尝试的:
我在剃须刀上尝试了所有这些,因为我认为它不会那么复杂(hah)。
这是版本
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
使用新
首先,我尝试简单地实例化:
@{ var h = new System.Web.WebPages.Html.HtmlHelper(); }
直到我运行它并得到它之前,它似乎有效:
Compiler Error Message: CS0143:
The type 'System.Web.WebPages.Html.HtmlHelper' has no constructors defined
使用反射
所以我认为这是一个抽象类,并试图继承它。不,这是一个实际的类,只是带有私人构造函数。所以我试图反映它
@using System.Reflection
@{
BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public;
System.Globalization.CultureInfo ci = null;
var instance = (System.Web.WebPages.Html.HtmlHelper)Activator.CreateInstance(
typeof(System.Web.WebPages.Html.HtmlHelper),
flags,
null,
new object[] { ViewData.ModelState },
ci
);
}
导致此错误的哪个:
Exception Details: System.MissingMethodException:
Constructor on type 'System.Web.WebPages.Html.HtmlHelper' not found.
希望直接访问
然后我尝试寻找一个活动版本:
var h = System.Web.WebPages.HelperPage.Html;
导致此错误(h为null)
Object reference not set to an instance of an object.
我尝试了这些版本的其他版本,这些版本也没有成功,并且会失去如何获得该课程的实例。我可以访问@Html
,但是,正如我所说,对于这种情况,它不是正确的HtmlHelper
。
如何获得System.Web.WebPages.Html
??
system.web.webpages.html是名称空间而不是类,您无法实例化命名空间。
http://msdn.microsoft.com/en-us/library/system.web.webpages.html(v = vs.111).aspx
我认为您想要system.web.webpages.html.htmlhelper