在MVC 5视图中找不到我的命名空间

时间:2015-02-12 19:55:49

标签: asp.net-mvc

我试图创建自己的助手,但我完全坚持这个错误。我在网上搜索了很多关于这类问题的帖子。 当我尝试将命名空间添加到视图时,我收到错误“无法找到类型或命名空间'CustomHelpers'...” 所以我为我的助手创建了一个类,并将名称空间添加到Views web.config中。 我的助手班

using System.Web.Mvc;

namespace CustomHelpers
{
    public static class CustomHelpers
    {
        public static string Truncate(this HtmlHelper helper, string input, int length)
        {
            if (input.Length <= length)
            {
                return input;
            }
            else
            {
                return input.Substring(0, length) + "...";
            }
        } 
    }
}

我的web.config

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing" />
    <add namespace="Playground.Web" />
    <add namespace="CustomHelpers"/>
  </namespaces>
</pages>
</system.web.webPages.razor>

我的观点

@using CustomHelpers
@{
    ViewBag.Title = "Home Page";
 }

1 个答案:

答案 0 :(得分:2)

问题是您不应该将类命名为与其命名空间相同。

Do not name a class the same as its namespace

例如,

namespace YourProjectName.Framework
{
    public static class CustomHelpers
    {
        ...
    }
}