使用AjaxExtensions时遇RouteValueDictionary未找到错误(ASP.NET MVC+C#)
解决ASP.NET MVC中RouteValueDictionary找不到及Ajax功能失效问题
一、RouteValueDictionary 找不到的解决方法
- 确认命名空间:
RouteValueDictionary实际定义在System.Web.Routing(.NET Framework)或Microsoft.AspNetCore.Routing(.NET Core/.NET 5+)命名空间,而非直接在System.Web下。在代码顶部添加对应引用:// .NET Framework using System.Web.Routing; // .NET Core/.NET 5+ using Microsoft.AspNetCore.Routing; - 添加程序集/包引用:
- .NET Framework:右键项目 → 「添加引用」 → 找到
System.Web.Routing程序集并添加。 - .NET Core/.NET 5+:通过NuGet安装
Microsoft.AspNetCore.Routing包。
- .NET Framework:右键项目 → 「添加引用」 → 找到
- 检查版本兼容性:确保项目使用的.NET版本与MVC版本匹配(MVC 3及以上版本才包含
RouteValueDictionary)。
二、Ajax功能无法运行、VS无法识别的解决方法
- 引入必要JS库:ASP.NET MVC的Ajax功能依赖
jQuery和jQuery Unobtrusive Ajax,在视图页面的<head>或底部添加引用:
注意路径需与项目中脚本文件的实际位置一致,NuGet包安装后默认路径为上述示例。<script src="~/Scripts/jquery.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> - 启用Unobtrusive JavaScript:
- .NET Framework(Web.config):
<appSettings> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> - .NET Core(appsettings.json):
"Mvc": { "EnableUnobtrusiveJavaScript": true }
- .NET Framework(Web.config):
- 安装对应NuGet包:
- .NET Framework:安装
Microsoft.jQuery.Unobtrusive.Ajax包。 - .NET Core:安装
Microsoft.AspNetCore.Mvc.JQuery.Unobtrusive.Ajax包。
- .NET Framework:安装
- 修复VS智能提示:若Visual Studio无法识别Ajax相关代码,可尝试清理解决方案(「生成」→「清理解决方案」)后重建项目;或删除
.vs文件夹后重启VS。
内容的提问来源于stack exchange,提问作者Akash A
相关产品推荐
相关产品推荐

