我有一个 HtmlHelper 扩展方法,可以从数据库缓存中提取本地化文本。代码是这样的。 (MVCWeb 是我的 MVC 应用程序的命名空间。)
using System.Web;
using System.Web.Mvc;
namespace MVCWeb.PresentationExtensions
{
public static class HtmlHelperExtensions
{
public static HtmlString GetText(this HtmlHelper Html, string keyword)
{
// code to get the text based on the keyword
}
}
}
我在我的 View 中使用
@using MVCWeb.PresentationExtensions
。在 ~/Views 文件夹中,调用扩展方法工作正常。我最近添加了一个区域。我在 ~/Areas/AreaName/Views 文件夹中的 View 文件中使用扩展方法,并且代码正在编译并且它确实有效,但是我在 IDE 中遇到错误。
每次我在 Area View 中使用
@Html.GetText("SomeKeyword")
时,错误列表中都会显示以下两个错误。我发现在 ~/Views 中,@Html 有以下代码注释:
HtmlHelper<dynamic> WebViewPage<dynamic>.Html
Gets or sets the System.Web.Mvc.HtmlHelper object that is used to render HTML elements.
在 ~/Area/AreaName/Views 中,@Html 有这些评论:
HtmlHelper WebPage.Html
Gets the System.Web.WebPages.Html.HtmlHelper object that is associated with a page.
作为引用,我在 ~/Views 和 ~/Areas/AreaName/Views 中的 Web.config 文件匹配。这是 .NET 4.5 上的 MVC4 应用程序,尚未从先前版本的 MVC 转换而来。
最佳答案
它运行良好,因为您的 web.config 包含正确的引用并且它在运行时正确匹配。
这只是区域的 ide 错误。要摆脱它,您可以使用 @include 将其指定为 View 顶部的包含,这将为智能感知提供帮助。
关于c# - 在区域内的 View 中使用 MVC HtmlHelper 扩展方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14942878/