2012-06-22 3 views
3

web.config для URL Rewrite являетсяМаршрутизация URL не работает?

<rewrite> 
     <rules> 
      <rule name="Mobile Portal"> 
       <match url="^(code)(/)?([^']*)" /> 
       <action type="Redirect" url="Code.aspx?id={R:3}" /> 
      </rule> 
     </rules> 
    </rewrite> 


input: www.abc.com/Code.aspx?id=123abcdef 
Required output: www.abc.com/code/123abcdef 
current output: http://www.abc.com/Code.aspx?id=.aspx 

Действительное URL страницы является www.abc.com/code/123abc. Мне нужно «123abc». Когда я обращаюсь к странице на www.abc.com/code/123abc, URL-адрес преобразуется в «http://www.abc.com/Code.aspx?id=.aspx». Я пользуюсь IIS 7. Итак, как я могу исправить эту проблему?

Большое спасибо.

ответ

0

Вы можете использовать маршрутизацию URL вместо перезаписи URL. Для этого перейдите к global.asax файл и записать RegisterRoutes метод как это:

void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapPageRoute("my_abc_page", 
     "code/{id}", 
     "~/Code.aspx"); 
} 

с вышеуказанной командой, любой запрос, как www.abc.com/code/123abcdef растолковать www.abc.com/Code.aspx?id=123abcdef, и вы можете получить доступ к этому идентификатору в коде страницы:

theId = Page.RouteData.Values["id"] as string;