ASP.NET MVC5中能否使用TagHelpers?遗留项目配置遇阻求方案
嘿,这个问题我维护老ASP.NET MVC项目时刚好踩过坑!其实就是Razor引擎没识别到你装的TagHelpers,下面给你几个实用的解决办法:
解决遗留ASP.NET MVC项目中TagHelpers未生效的问题
1. 全局注册TagHelpers(最推荐)
在项目的Views文件夹下找_ViewImports.cshtml文件——如果没有的话直接新建一个,然后添加这行代码:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
这行代码的作用是注册Microsoft.AspNetCore.Mvc.TagHelpers程序集里的所有TagHelpers,这样整个项目的视图都能直接用这些TagHelpers,不用每个视图单独配置,省心很多。
2. 单个视图局部注册
要是你只想在个别视图里用TagHelpers,也可以在目标视图的顶部添加同样的代码:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
不过这种方式比较繁琐,每个需要的视图都得加,除非是特殊场景,不然不推荐。
3. 额外要注意的细节
- 确认你的项目是ASP.NET MVC 5.2及以上版本,更早的版本对TagHelpers的支持不完善,如果是老版本,得先把
Microsoft.AspNet.MvcNuGet包升级到5.2+才行。 - 装完
Microsoft.AspNetCore.Mvc.TagHelpers后,记得清理并重新生成整个项目,有时候NuGet包的引用需要重新编译才能被Razor引擎识别。 - 要是你自己写了自定义TagHelpers,也能用同样的方式注册,把程序集名称换成你自己的项目名就行,比如:
@addTagHelper *, YourCustomProjectName
内容的提问来源于stack exchange,提问作者Kornel
相关产品推荐
相关产品推荐

