在 asp.net mvc 3 中,默认的 html 帮助程序来自System.Web.Mvc.Html
. 我想使用来自System.Web.WebPages.Html
. 尽我所能,我似乎无法获得实例或访问System.Web.WebPages.Html
. 这是我尝试过的:
我在剃刀内联中尝试了所有这些,因为我认为它不会那么复杂(哈)。
这是版本
<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 为空)
Object reference not set to an instance of an object.
我尝试了这些的其他版本,但也没有成功,并且对如何获取此类的实例感到茫然。我可以访问,@Html
但正如我所说,这不HtmlHelper
适合这种情况。
我怎样才能得到一个实例System.Web.WebPages.Html
??