在MVC4中定义辅助方法时如何修复模糊调用?

时间:2013-11-07 19:48:24

标签: asp.net-mvc-4 html-helper

this示例之后,我在App_Code / HtmlHelpers.cs中创建了一个辅助方法:

namespace AdminWebsite.Helpers
{
    public static class HtmlHelpers
    {
        public static MvcHtmlString MenuItem(this HtmlHelper htmlHelper,
                                             string text, string action,
                                             string controller,
                                             object routeValues = null,
                                             object htmlAttributes = null)
        {
            var li = new TagBuilder("li");
            ...

我在〜/ Views / Web.confg中添加了名称空间,在_Layout.cshtml的顶部添加了@using AdminWebsite.Helpers;

用法:

@Html.MenuItem("Home", "Home", "Home")

我对它本身的模糊性感到茫然:

  

以下方法或属性之间的调用不明确:   “AdminWebsite.Helpers.HtmlHelpers.MenuItem(System.Web.Mvc.HtmlHelper,   字符串,字符串,字符串,对象,对象)'和   “AdminWebsite.Helpers.HtmlHelpers.MenuItem(System.Web.Mvc.HtmlHelper,   string,string,string,object,object)

2 个答案:

答案 0 :(得分:2)

我花了两周的时间才找到真正解决这个问题的方法。我在 App_Code 文件夹下放了一个新的类文件(我好久没用过那个文件夹了)。出于某种原因,我将“Build Action”设置为“ Compile ”。好吧,我想在 App_Code 文件夹下的任何内容都是默认编译的,所以当项目构建时,它会给我这个“模糊”错误。只需将“构建操作”设置回“”,模糊错误即告消失!您可以在“App_Code”文件夹下找到帮助方法的所有提示!

答案 1 :(得分:0)

似乎任何一个web.config都出错了。只需从空白的MVC4项目中获取web.config并替换。

顺便说一下,在配置和布局中都有命名空间不会引发错误。