4

我在 default.aspx 中有一个带有类似链接的应用程序...

<link href="Styles/smoothness/jquery-ui-1.8.14.custom.css" rel="stylesheet" type="text/css" />
<script src="Scripts/json2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.8.14.custom.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.tmpl.min.js" type="text/javascript"></script>  

一旦我添加了 URL Routing,它就破坏了我的相对路径。因此,如果我深入到一条路线,那么页面就找不到图像、脚本等。我想我的 jQuery 服务调用也可能被破坏了。除了在每个相对引用的开头添加“/”之外,还有其他方法可以解决此问题。在我的 global.asax 中,我目前有...

void RegisterRoutes(RouteCollection routes)
{

    routes.MapPageRoute(
        "EntityRoute", 
        "{entityID}", 
        "~/Default.aspx");        

    routes.MapPageRoute(
        "GlobalSearchRoute",
        "{entityID}/{guarantorID}/{guarDOB}",
        "~/Default.aspx");
}

我可以在此处添加一些内容以允许我的相对路径运行而不更改站点中的所有这些路径吗?

4

2 回答 2

1

您可以简单地使用 html 基本标记。

在 aspx 中:

<base id="baseControl" runat="server" />

在后面的代码中:

protected void Page_Init(object sender, EventArgs e)
{
    baseControl.Attributes.Add("href", Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/"));
}

希望这可以帮助。

于 2013-09-24T16:48:10.013 回答
1

您可以在 global.asax 中使用Routes.IgnoreRoute来排除那些引用您的静态内容的路由:

routes.IgnoreRoute("Styles/{*pathInfo}");
routes.IgnoreRoute("Scripts/{*pathInfo}");
routes.IgnoreRoute("Images/{*pathInfo}");

等等

于 2012-04-24T23:56:44.493 回答