MVC 4에 문제가 있습니다. 실제로 뭔가 사소한 것 같지만 마지막 날에 나를 괴롭 히고 있습니다. 알아낼 수 없습니다. 나는라는 이름의 컨트롤러가RedirectToAction()이 잘못된 URL을 생성합니다.
http://www.example.com/my-dashed-url
:
public class MyDashedUrlController: Controller
{
}
을 나는이 같은 두 경로가 있습니다
나는이 URL이 나는 인덱스에 도착
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("my-dashed-url",
"my-dashed-url/{action}",
new { controller = "MyDashedUrl", action = "Index" });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);
그냥 벌금. 그러나, 나는이 작업을 수행 할 때
public ActionResult Index()
{
if (NoUserIsLoggedOn)
return RedirectToAction("Logon", "MyDashedUrl");
return View();
}
public ActionResult Logon()
{
Contact c = GetContact();
return View(c);
}
그것은 제대로 "로그온"조치에 저를 리디렉션하지 않습니다. 그것은 저를 리디렉션해야합니다
http://www.example.com/my-dashed-url/logon
대신 그것은 저를 재 시도 : (404 찾을 수 없음)
난
http://www.example.com/logon
... 작동하지 않는 무언가를 놓침. 누구든지 그것을 발견 할 수 있습니까? 누구든지 더 많은 정보가 필요하면 알려주세요.
그리고이 컨트롤러에서 똑같은 작업을하는 모든 RedirectToAction입니다. 그들이 '으로보고, 그것이 내가 정의 된 경로에 뭔가를하는 것 같아요 http://www.example.com/logon
을, 그러나 나는 결함을 찾을 수없는, • Html.BeginForm ("로그온", "MyDashedUrl은")도 생성 할 모두 똑같아. 루트는 것을 기억
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"my-dashed-url",
"my-dashed-url/{action}",
new { controller = "MyDashedUrl", action = "Index" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
: 내가 MVC에서 기본 일 외에 내 노선을 모두 사용하지 않으면, 문제는 같은
답변 해 주셔서 감사합니다. 불행히도 내 경로가 이미이 순서로 정의되어 있기 때문에 기쁨이 없습니다. 이 질문을 반영하도록 질문을 업데이트하겠습니다. –
난 그냥이 설치를 테스트하고 그것은 나를 위해 일했다. 어쩌면 문제가 다른 곳에 있을지도 모릅니다. 새로 생성 된 응용 프로그램에서 이것을 재현 할 수 있습니까? –