MVC3, ASP.NET 4.5, C#, 면도기 및 IIS Express 개발 중입니다.작업에 대한 경로 매핑을 사용할 때 매개 변수 값을 잃어 버리십니까?
routes.MapRoute(
"Item_Delete",
"Item/Delete/{id}/{a}/{b}/{c}",
new { controller = "Item", action = "Delete"}
);
내가 작업 방법이 있습니다 :
public ActionResult Delete(int id, int a = 0, int b= 0, int c = 0)
내가 경로 매핑을 주석 때 내가 가진 :
http://myserver/Item/Delete/1301?a=8&b=1&c=0
위의 쿼리 문자열 반환
나는 경로를 a, b 및 c의 값은 정확하게
입니다. 라우팅이 활성화 된 경우id=1301, a=8, b=1, c=0
그러나, 나는 URL을 변환 얻을 :
http://myserver/Item/Delete/1301/8/1/0
하지만 정말 날 혼란 작업 방법에
id=1301, a=0, b=0, c=0
를 얻을.
아마도 내 경로를 잘못 설정 했습니까? URL을 올바르게 형식화하면 발사되는 것처럼 보입니다. Action 메서드는 올바른 매개 변수 값을 추출 할 수없는 것 같습니다.
도움 주셔서 감사합니다. 내가 볼 수
routes.MapRoute("Suppliers", "{controller}/{action}/{id}/{d}/{e}/{f}", new { id = UrlParameter.Optional }, new string[] { "MyApp.MVC3.ED.Controllers" });
유일한 유사점은 다음과 같습니다 :
A) 일반 {문제의
EDIT1
원인은 이전 파일의 다른 경로 매핑의 간섭에 기인 제어 장치}.
B 다른 이름 있지만) 일반 {동작}
c) 동일 {ID} 파라미터 태그
d) paramers 즉 (d}, {E}, {F} 같은 수. 그래서 방해하지 않겠습니까?
지금은 내 솔루션은 위의 하나 전에 경로를 넣어하는 것입니다,하지만 난 이해하는 사랑 왜 모든 너무 많이 내 편안함을위한 "마술"과 같은 위의 방해합니다.!
EDIT2
#더 많은 연구에 따르면 컨트롤러에 {controller}/{action} 유형의 patsh가 너무 일찍 발생하면 매개 변수에 관계없이 MVC가 {controller}에서 일치하는 것처럼 혼란을 야기 할 수 있습니다. 그래서 내 솔루션은 내 모든보다 구체적인 경로에 대해 다음 형식을 사용했다 :
MyController/MyAction/{id}..., new{controller="MyController","MyAction"}
조금 긴 호흡 보인다, 그러나 이것은 내 경로를 쓸 수있는 유일한 예측 방법을 보인다.
감사처럼 컨트롤러에서 호출에
쓰기 경로. 선택 사항이 아니라면 "a = UrlParameter.Optional, b = UrlParameter.Optional, c = UrlParameter.Optional"이 필요합니까? 또한 doee @ "\ d +"는 값 = 0-9에 대한 정규식 유효성 검사기를 의미합니까? – SamJolly