2010-07-04 4 views
1

내가 현재 URL에서 페이지 번호를 얻기 위해이 정규 표현식을 사용하고있는 URL에서 페이지 번호를 얻을 수 있습니다 :정규식은

/some_category/2 : 같은 URL에 대해 잘 작동

@"\/(\d+)$"; 

현재 정규식이 작동되지 않도록
/some_category2/323

내 URL을 이제, 몇 가지 추가 쿼리 문자열 값 (옵션)이 이 경우. ?

/some_category/2
/some_category2/323
/some_category2/323 = 1 & B = 2
/some_category2/323 :

그래서 지금은 지원하는 정규식이 필요하십니까? C = 123 & & & A = 1, B =

어떤 도움도 2를 감상 할 수있다.

와일드 카드로 경로를 사용하고 있기 때문에 내장 asp.net mvc를 사용할 수 있습니다.

+0

를 사용입니까? –

답변

4

/(\d+)

전면 슬래시를 벗어날 필요가 없습니다해야합니다. $ 문자는 줄 끝 부분 앞에 숫자가 있기 때문에 작동하지 않는 줄 끝 문자입니다.

0

시도해보십시오. JavaScript에서 작동합니다.

@"/(\d+)\??.*$"; 
2

MVC를 사용하는 경우 왜 URL에 정규식이 필요합니까? ActionResult에서 번호를 가져올 수 없습니까?

가정 경로는

// Default Catch All MapRoute 
routes.MapRoute("Default", "{controller}/{action}/{id}", new { 
    controller = "Home", 
    action = "Index", 
    id = UrlParameter.Optional 
}) 

그럼 그냥 우리가 당신의 MVC 노선의 모습을 볼 수 있습니다

public ActionResult myAction(int id){ 
    // get your "number" by using the "id" variable 
} 
+0

+1 정규식이 필요하지 않으며 실제로 정규식은 좋지 않습니다. – Stilgar

+0

regex는 필요하지 않은 곳에 상당한 오버 헤드를 추가합니다. 쿼리 문자열은 예상대로 작동하지만 지나치게 많은 노력을 기울이지 않고도 경로에서 URL 매개 변수를 검색 할 수 있습니다. –

+0

와일드 카드 라우트를 사용한다고했는데, 고마워. 상단에 – Blankman