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视图中.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....