mvc 노선을 공유하는 동일한 작업?
-
06-07-2019 - |
문제
나는 다음과 같은 두 노선에서 정의 내 MVC app.;- 순간에 나는 두"MVC 보기 내용 페이지"정의
/ShowName/NameById
/ShowName/Index
그러나 콘텐츠에 이러한 두 개의 페이지가 동일한 것을 확인할 수 있습니다.그것은 두 개의 노선 동일한 콘텐츠를 공유하고 있을까요?그렇지 않은 경우 다음 수 있는)하나 만들에 대한 규칙을 모두선 또는 b)를 만들어야 합 정렬을 공유하는 사이에 콘텐츠 페이지를 표시 데이터는?
routes.MapRoute(
"NameById",
"Name/{theName}/{nameId}",
new
{
action = "NameById",
controller = "ShowName",
theName = "Charley"
}
,new { nameId = @"\d+" }
);
routes.MapRoute(
"ShowName",
"Name/{theName}",
new
{
action = "Index",
controller = "ShowName",
theName = "Charley"
}
);
편집 I have read 답변을 아래에 나는 다음과 같은 작업 결과 방법이 있습니다.를 제거하는 경우 하나의 방법(예:Index)그런 다음 어떻게 다시 작성 내로 단일하십니까?
public ActionResult Index(string theName)
public ActionResult NameById(string theName, int? nameId)
그래서 다음과 같은 작동 url 의 일입니까?
/Name/Charley
/Name/Charley/11234
해결책
당신은 정말 필요 2 개의 다른 경로는?을 만들 수 있는 패턴을 인덱스에 대한 경로
Name/{theName}/{nameId}
고 nameId null 허용 입력을 당신의 작업입니다.그냥 몇 가지를 추가 논리를 작업하는지 여부를 확인 nameId 는 값에 따라 행동합니다.
다른 팁
를 만들 수 있는 부분에 대한 세부 사항 페이지의 영역,유지의 분리는 두 가지 작업을 경우에는 그 변경에서 나중에 점이다.또는 당신은 단지
return View("DetailView", model);
하지만 그 수 있습을 소개하는 추가 문자열을 관리하는 사 컨트롤러 두 개의 작업입니다.이후 MVC 지원하지 않는 과부 활동에 의하여 이름(지 않으면 당신이 얻/포스트 페어,하나의 인자가 없을)수 있습 확인{nameId}매개 변수는 경우 빈/null 을 사용하기 전에.
제휴하지 않습니다 StackOverflow