나는 내 HomeController에 다음과 같습니다MVC 경로 구성
http://localhost:50499/Home/Share/SomeTextHere
내가 routeconfig 파일에 이런 식으로 경로를 구성 :
public ActionResult Share(string id)
{
Debate debate;
try
{
debate = Db.Debates.Single(deb => deb.ShareText.Equals(id));
}
catch (Exception)
{
return RedirectToAction("Index");
}
return View(debate);
}
이 날 이런 식으로 URL을 호출 할 수 있습니다 :
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Share",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Share", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
나는 U를 부를 수있는 방법이되고 싶다. RL이 방법 : 나는 운없이이 고민 한
http://localhost:50499/Debate/SomeTextHere
. 그것을 달성하는 가장 좋은 방법은 무엇입니까?
URL에서 컨트롤러 및 작업 이름을 제거 할 수 없습니다. 경로는 어떤 방식 으로든 구별 할 수 있어야합니다. '.../Share/SomeTextHere'에 대한 경로를 만들 수 있습니다. –
표시 한 경로는 모두 동일합니다. 두 경로 모두 2 개의 세그먼트가 포함 된 임의의 URL과 선택적인 세 번째 세그먼트가 일치합니다. 당신의 2 번째 루트는 절대 치지 않을 수 있습니다. (아마도 1 번째를 삭제할 수도 있습니다) –
@StephenMuecke URL을 http : // localhost : 50499/Debate/SomeText로 바 꾸었습니다 이것이 가능합니까? – MRFerocius