1

我有一个显示项目列表的 .aspx 页面。目前它显示www.site.com/Catalog.aspx?mid=228需要www.site.com/CellPhone/blackbery/sprint/Q10.aspx. 所有项目都显示在 DataList 中,在按钮上单击超链接重定向到Catalog.aspx查询字符串“id”,即设备 ID。

现在,我已经为 LinkBut​​ton'CellPhone/blackbery/sprint/228'动态构建了 URL,也为其他项目构建了 URL。

以上链接重定向和 URL 更改,但 css 受到干扰。&我想动态重写所有链接,而不是像上面那样硬编码。

参考资料:

<link href="css/layout.css" rel="stylesheet" type="text/css" />
<link href="css/reset_font_grid.css" rel="stylesheet" type="text/css" />
<link href="css/buttons.css" rel="stylesheet" type="text/css" />
<link href="css/inner-pages.css" rel="stylesheet" type="text/css" />
<link href='http://fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>

目录.aspx

<asp:HyperLink ID="HyperLink6" runat="server" NavigateUrl="/cellphone/blackberry/sprint/228.aspx">Show Cellphones asdfsdf</asp:HyperLink>

全球.asax

<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Routing" %>
<script runat="server">
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RegisterRoute(System.Web.Routing.RouteTable.Routes);
    }

    void RegisterRoute(RouteCollection routes)
    {
        //http://aspsnippets.com/Articles/How-to-hide-remove-ASPX-extension-in-URL-in-ASPNet.aspx
        routes.MapPageRoute("44", "{cat}/{carrier}/{devices}/{id}.aspx", "~/Catalog.aspx");
    }
}

一切正常,但只是页面和图像上的 css 没有应用!

4

3 回答 3

2

只需hrefCSS相对位置更改为root不是来自当前位置,

改变

<link href="css/layout.css" rel="stylesheet" type="text/css" />
<link href="css/reset_font_grid.css" rel="stylesheet" type="text/css" />
<link href="css/buttons.css" rel="stylesheet" type="text/css" />
<link href="css/inner-pages.css" rel="stylesheet" type="text/css" />

<link href="/css/layout.css" rel="stylesheet" type="text/css" />
<link href="/css/reset_font_grid.css" rel="stylesheet" type="text/css" />
<link href="/css/buttons.css" rel="stylesheet" type="text/css" />
<link href="/css/inner-pages.css" rel="stylesheet" type="text/css" />

/css/layout.css表示该文件位于您调用它的任何位置的文件layout.css夹内,例如,如果您的页面是这样的cssroot

http://www.example.com/product/smartphone/blackberry

如果你使用

<link href="css/layout.css" rel="stylesheet" type="text/css" />

它会css使用这条路线寻找root/product/smartphone/blackberry/css/layout.css,因为该文件夹或路线中没有文件,它无法加载CSS导致您CSS受到干扰的文件。

于 2014-11-24T06:24:19.703 回答
0

你需要使用 ResolveUrl

例子 :

<link href="<%= ResolveUrl("css/layout.css") %>" rel="stylesheet" type="text/css" />

如果您有任何问题,请告诉我。

于 2014-11-25T05:45:12.200 回答
0

最简单的方法应该是添加一个不是文件条件:

                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                </conditions>
于 2016-12-19T13:19:45.620 回答