1

在 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??

4

1 回答 1

-2

System.Web.WebPages.Html 是命名空间而不是类,您不能实例化命名空间。

http://msdn.microsoft.com/en-us/library/system.web.webpages.html(v=vs.111).aspx

我想你想要 System.Web.WebPages.Html.HtmlHelper

于 2012-12-21T02:10:37.910 回答