ASP.NET MVC传递ID后Edit视图丢失CSS/JS问题求助
问题解决方案
这个问题的核心原因是视图中CSS/JS等资源使用了相对路径:当访问带参数的Edit页面(URL格式为/Country/Edit/{Id})时,浏览器会将当前路径解析为/Country/Edit/,导致相对路径的资源被错误追加到控制器路径后(比如变成/Country/Theme/...),而实际资源应该在应用根目录下的/Theme/...路径。
解决步骤:
检查所有资源(CSS、JS、图片等)的引用方式,将相对路径改为基于应用根目录的绝对路径,两种可选方式:
- 使用ASP.NET MVC的
Url.Content方法生成正确路径:
把原来的相对路径引用:
修改为:<script src="Theme/vendors/jqvmap/examples/js/jquery.vmap.sampledata.js"></script><script src="@Url.Content("~/Theme/vendors/jqvmap/examples/js/jquery.vmap.sampledata.js")"></script> - 直接使用斜杠开头的绝对路径(适用于资源确实在根目录下的情况):
<script src="/Theme/vendors/jqvmap/examples/js/jquery.vmap.sampledata.js"></script>
补充说明:
当你不传递参数访问/Country/Edit时,浏览器解析的当前路径是/Country/,此时资源能正常加载大概率是浏览器缓存了根目录下的资源,或者存在偶然路径匹配,但这不是可靠的解决方式——统一使用根路径引用才能确保所有路由场景下资源都能正确加载。
内容的提问来源于stack exchange,提问作者Dev Beginner
相关产品推荐
相关产品推荐

