【问题标题】:HtmlHelpers in MVC 6MVC 6 中的 HtmlHelpers
【发布时间】:2015-01-31 03:43:06
【问题描述】:

我正在尝试将此代码移植到 mvc 6,感谢您提供任何帮助,代码可以编译,但在我对 @Html.IsActive 的看法中该方法不可用。

using Microsoft.AspNet.Mvc.Rendering;

namespace Blah.Web.Helpers
{
    public static class HtmlHelpers
    {

        public static string IsActive(this HtmlHelper htmlHelper, string controller, string action)
        {
            var routeData = htmlHelper.ViewContext.RouteData;

            var routeAction = routeData.Values["action"].ToString();
            var routeController = routeData.Values["controller"].ToString();

            var returnActive = (controller == routeController && action == routeAction);

            return returnActive ? "active" : "";
        }

    }
}

在视图中我引用了命名空间:

@using Blah.Web.Helpers;

【问题讨论】:

  • 您是否在视图中添加了@using Blah.Web.Helpers
  • 是的,我有。很抱歉没有发布该信息。
  • HtmlHelper 应该是 IHtmlHelper

标签: c# asp.net-core asp.net-core-mvc


【解决方案1】:

在方法签名中,HtmlHelper应该是IHtmlHelper

见下面的例子

namespace Blah.Web.Helpers
{
    public static class HtmlHelpers
    {
        public static string IsActive(this IHtmlHelper htmlHelper, string controller, string action)
        {
            var routeData = htmlHelper.ViewContext.RouteData;

            var routeAction = routeData.Values["action"].ToString();
            var routeController = routeData.Values["controller"].ToString();

            return (controller == routeController && action == routeAction) ? "active" : "";
        }
    }
}

【讨论】:

  • 请考虑编辑此答案,以便第一行显示类似“在方法签名中,HtmlHelper 应为IHtmlHelper。这将有助于其他用户比较代码 Q + A 代码 sn-ps。
  • 这是 MVC 6 中的新要求吗?在我的 MVC 4 应用程序中,我不使用界面版本,一切正常。
  • 是的,只适用于.net core
猜你喜欢
  • 2014-08-22
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多