日期:2014-05-17  浏览次数:20425 次

关于MVC View内的路径问题, 请指教
目前遇到一个问题.
MVC网站内建了一个Area用于后台.
在后台任意view内使用@Html.ActionLink生成的链接是正确的, 是/manager/xxxx这样的路径
但是在view中的资源要如何写路径呢?
比如
<script src="~/scripts/js.js">
这样写的话, 就会跑到主网页根目录下的scripts文件夹了, 而不是manager下的scripts文件夹, 如果使用相对路径src="scripts/js.js"的话, 如果当前的URL路径太长比如是/manager/news/list下, 这个目录就找不到了
要如何解决呢?

------解决方案--------------------
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.ui.datepicker-zh-CN.js")" type="text/javascript"></script>
    <link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="Stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>

------解决方案--------------------
js默认不经过 Routes解释,所以你如果需要任何js文件,应该有物理的文件先存在.
Url.Content怎么写倒不太重要了吧,因为它你无论使用相对或绝对路径,都是定死的,物理的
除非你也同时用isapi处理js文件,这样的考虑才有意义
------解决方案--------------------
area中除了controller、model和view外,就不应该放其它资源,因为这个文件夹在mvc中有特殊作用,而且area是mvc的关键词,你不能在url中出现area这样的路径,所以你的图片、脚本之类的文件应该放在站点根目录下的相应目录中,这样也方便统一管理

=================================================================
ASP.NET MVC免费分页控件MvcPager 2.0版发布,功能更强大,欢迎使用:
http://www.webdiyer.com/mvcpager/