首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC html帮助器不起作用

ASP.NET MVC html帮助器不起作用
EN

Stack Overflow用户
提问于 2009-09-15 05:37:42
回答 3查看 11K关注 0票数 6

我希望有人能帮助我。我一直在尝试为我的MVC应用程序编写一个自定义的html助手。首先,我尝试了一个测试程序,它只编写了一个

指定参数的标签。问题是,除非我显式地导入名称空间,否则它是不会工作的。我已经阅读了很多,当我阅读时,该方法应该不带import命名空间,如下所示:

代码语言:javascript
复制
<%=Html.Prueba("This is a paragraph") %>

但是这个方法,Prueba,并没有出现在VS智能感知中。

我的类如下所示:

代码语言:javascript
复制
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);
        }
    }

}

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-15 05:46:29

命名空间必须在某个地方声明/导入。你也可以这样做:

页面内部的文件

  • 母版页或
  • inside web.config

如果你想要一些全局的东西,最好在web.config中配置你的名称空间。

前两个元素使用<@import...>指令,最后一个元素使用<namespace>配置元素。

票数 13
EN

Stack Overflow用户

发布于 2013-12-08 21:03:17

由于某些原因,在visual studio 2013中,您必须重新启动vs才能应用web.config中的更改。

票数 7
EN

Stack Overflow用户

发布于 2009-09-15 05:46:34

您可以将名称空间添加到web.config中,这样以后就不必担心它了。

在你的web.config中,你应该会看到类似这样的东西:

代码语言:javascript
复制
<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继承设置。如果您使用此方法,请预先警告,某些设置只能在应用程序级别进行设置。它可能很快就会变得令人困惑。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1425309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档