gpt4 book ai didi

c# - 在区域内的 View 中使用 MVC HtmlHelper 扩展方法

转载 作者:行者123 更新时间:2023-11-30 12:30:57 24 4
gpt4 key购买 nike

我有一个 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 中遇到错误。

每次我在区域 View 中使用 @Html.GetText("SomeKeyword") 时,错误列表中都会显示以下两个错误。

  • “System.Web.WebPages.Html.HtmlHelper”不包含“GetText”的定义,最佳扩展方法重载“MVCWeb.PresenationExtension.HtmlHelperExtensions.GetText(System.Web.Mvc.HtmlHelper, string)”具有一些无效的论点
  • 实例参数:无法从“System.Web.WebPages.Html.HtmlHelper”转换为“System.Web.Mvc.HtmlHelper”

我发现在~/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 转换而来。

  • @Html 在常规 View 和区域 View 中定义为不同类型是否正常?
  • 如果 IDE 显示错误,为什么编译和运行正确?这是 IDE 错误吗?
  • 如何阻止这些错误显示在 IDE 中?

最佳答案

它运行良好,因为您的 web.config 包含正确的引用并且它在运行时正确匹配。

这只是区域的一个ide bug。要摆脱它,您可以使用 @include 将其指定为 View 顶部的包含,这将为智能感知提供帮助。

关于c# - 在区域内的 View 中使用 MVC HtmlHelper 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14942878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com