如何调试使用Controller和Action时Razor Asp.Net锚标签生成问题
解决ASP.NET Razor锚标签生成空链接的问题
检查项目类型
- 若你使用的是ASP.NET MVC项目,
asp-controller和asp-action的用法是正确的;但如果是ASP.NET Core Razor Pages项目,这类标签助手不会生效,需改用asp-page,且要使用根目录起始的绝对路径格式,比如asp-page="/Course/Index",而非相对路径。
确认标签助手已启用
- 检查
_ViewImports.cshtml文件,必须包含以下代码,否则所有asp-*属性会被直接忽略,生成的a标签只会保留样式而无href:@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
验证控制器与动作方法的有效性
- 确保
CourseController是public类且继承自Controller(或ControllerBase),同时Index动作方法为public,未添加[NonAction]特性:public class CourseController : Controller { public IActionResult Index() { return View(); } }
检查路由配置
- 打开
Program.cs(旧版项目为Startup.cs),确认路由配置正确:- MVC项目需确保存在
app.MapControllerRoute配置,例如默认路由:app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); - Razor Pages项目则要确保包含
app.MapRazorPages()配置。
- MVC项目需确保存在
清理缓存并重新生成项目
- IDE缓存可能引发异常问题,先右键项目选择「清理」,再重新生成项目后运行测试。
内容的提问来源于stack exchange,提问作者Alberto
相关产品推荐
相关产品推荐

