2014-11-24 2 views
1

У меня есть страница .aspx, которая отображает список элементов. В настоящее время он отображает www.site.com/Catalog.aspx?mid=228, который должен быть www.site.com/CellPhone/blackbery/sprint/Q10.aspx. Все элементы отображаются в DataList, а при нажатии кнопки переадресация гиперссылки на Catalog.aspx с номером запроса «id», который является идентификатором устройства.Почему css & image искажается при перезаписи URL в asp.net?

Теперь у меня есть URL для LinkButton как 'CellPhone/blackbery/sprint/228' динамически и для других предметов тоже.

Переадресация ссылок и изменение URL-адресов, но css нарушены. & Я хочу динамически переписать все ссылки, а не жестко, как указано выше.

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'> 

Catalog.aspx

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

Global.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 на странице & изображений не применяется!

ответ

0

Вы должны использовать ResolveUrl

Пример:

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

Пожалуйста, дайте мне знать, если у вас есть какие-либо проблемы.

+0

привет @Amarsinh Пол спасибо, что ответ на это работает отлично! :) –

2

просто изменить href на CSS относительно его 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 находится внутри папки css в root, где бы вы это называете, например, если ваша страница как этот

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, потому что нет ни одного файла в этой папке или route, он не может загрузить файл CSS, из-за чего ваш CSS будет нарушен.

+0

привет @Kyoijimaru, я попробовал этот too..and это тоже работает! ..так +1 :) –

0

Самый простой способ следует добавить не файл условие:

   <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
       </conditions> 

 Смежные вопросы

  • Нет связанных вопросов^_^