我希望有人能帮助我。我一直在尝试为我的MVC应用程序编写一个自定义的html助手。首先,我尝试了一个测试程序,它只编写了一个
指定参数的标签。问题是,除非我显式地导入名称空间,否则它是不会工作的。我已经阅读了很多,当我阅读时,该方法应该不带import命名空间,如下所示:
<%=Html.Prueba("This is a paragraph") %>但是这个方法,Prueba,并没有出现在VS智能感知中。
我的类如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
namespace EasyGoCostaRica.Helpers
{
public static class ViewsHelpers
{
//This method is just for testing. Is not working :(
public static string Prueba(this HtmlHelper helper, string param1)
{
return string.Format("<p>{0}</p>", param1);
}
}
}提前感谢!
发布于 2009-09-15 05:46:29
命名空间必须在某个地方声明/导入。你也可以这样做:
页面内部的文件
如果你想要一些全局的东西,最好在web.config中配置你的名称空间。
前两个元素使用<@import...>指令,最后一个元素使用<namespace>配置元素。
发布于 2013-12-08 21:03:17
由于某些原因,在visual studio 2013中,您必须重新启动vs才能应用web.config中的更改。
发布于 2009-09-15 05:46:34
您可以将名称空间添加到web.config中,这样以后就不必担心它了。
在你的web.config中,你应该会看到类似这样的东西:
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
</namespaces>只需在名称空间中添加一行即可。
如果您不想全局导入helper,那么每个目录都可以有自己的web.config。除非特别设置,否则这些“子”web.configs将从更高的web.configs继承设置。如果您使用此方法,请预先警告,某些设置只能在应用程序级别进行设置。它可能很快就会变得令人困惑。
https://stackoverflow.com/questions/1425309
复制相似问题