微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – VB.NET中的ASP.NET MVC 4 HtmlHelper扩展需要App_Code吗?

我花了两个小时的时间来试图解决这个问题.开始:

我只想创建一个HTMLHelper扩展方法.这已经做了很多次,我知道我正确编码.但是,如果我将代码文件放在App_Code(我认为在MVC世界中没有意义的文件夹!)中,Razor似乎只知道它.

我怎么知道这个?

很简单……我在两个单独的同名文件中有两个相同编码的HTMLHelper扩展方法.

放在〜/ Extensions中的第一个文件包含扩展方法displayForProperty

放在〜/ App_Code中的第二个文件包含扩展方法displayForProperty2

在视图中,我输入@ Html.displ- Intellisense只显示displayForProperty2!

我没有@using语句,因为看起来没有必要查看displayForProperty2.更不用说,在这种情况下,它不会改变任何东西.

那么,这是为什么呢?这应该是这样吗?这只是剃刀迟钝,还是我是那个被智障的人?

我正在使用VS 2012的完全更新副本.

PS – 另一方面,我是否必须在每个/ Views目录下的每个web.config中放置名称空间引用(如在每个单独的区域中),以及在根目录下?为什么我不能把它放在根目录或根目录/ Views目录中?

解决方法

您不必将html帮助扩展方法放在App_Code中.虽然有点旧,但asp.net: http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs上的教程指导你很好.

我通常在MVC项目的根目录下有一个“Helpers”文件夹,每个文件夹都有单独的类文件.它们位于Project.MVC.Helpers命名空间中,我将@using Project.MVC.Helpers添加到我想要使用帮助器的Razor视图中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐