2013-11-22 2 views
0

는 I은 기본 경로가 활성화 : 호스트 이름/홈/색인, 호스트 이름/홈/푸, 호스트 이름/홈/바/23 잘 : 같은 경로를 resove합니다ASP.NET MVC는 경로

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

.
하지만이 같은 경로를 사용하도록 설정해야합니다 :
컨트롤러 :
작업 : 지수
{ID} : 색인 작업 매개 변수 "ID"에 을 가리켜 야 호스트 이름/{ID를}

그런 경로가 있습니까?

답변

1

은 테스트되지 않음 : 가 id 당신이 위에 다른 하나는 경로 를 추가하고 정규식 제약 조건을 정의 할 수있는 번호입니다

+0

모양을 내 모든 AJAX 호출 : – dakt

+0

어떤 URL u는 아약스의 요청을 r에이야? –

+0

나는 그 중 몇 가지를 가지고있다 :/home/Register/{param},/Home/Login/{param} 등 – dakt

1

경우 기본 경로에서이

routes.MapRoute(
     name: "custom", 
     url: "{controller}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

같은 경로를 만듭니다

routes.MapRoute(
    name: "IdOnlyRoute", 
    url: "{id}", 
    defaults: new { controller = "Home", action = "Index" }, 
    constraints: new { id = "^[0-9]+$" } 
); 
+0

아니요, 문자열입니다 :) – dakt

+0

일부 제약 조건이있는 문자열 인 경우에도 위의 솔루션을 사용할 수 있습니다. 당신은 운이 없을 수도 있습니다. – Tallmaris

0

시간이 부족하기 때문에 경로 r 모든 행동. 운 좋게도 그들 중 많은 수가 없습니다. :)

 routes.MapRoute(
      name: "IndexWithParam", 
      url: "{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

     routes.MapRoute(
      name: "IndexWithOutParam", 
      url: "", 
      defaults: new { controller = "Home", action = "Index" } 
     ); 

     routes.MapRoute(
      name: "Login", 
      url: "Home/Login", 
      defaults: new { controller = "Home", action = "Login" } 
     ); 

그래서 마지막 경로는 반복적 인 다른 작업을 위해 반복되었습니다. 그것이 더 잘 할 수 있는지 확실하지 않지만 작동합니다.

0

AttributeRouting 패키지로 놀려고 했습니까?

그런 다음 코드를 그냥 죽이

[GET("/{id}", IsAbsoluteUrl = true)] 
    public ActionResult Index(string id) { /* ... */ }