내 URL을 다시 작성하는 데 문제가 있습니다. 현재 내 URL은 매개 변수가 전달 된 쿼리 문자열 형식입니다. 이제 해당 URL을 더 친숙한 URL로 변경하고 싶습니다. 예를 들어 보겠습니다
http://localhost:59423/SomeController/SomeActionMethod?Id=7
같은 것에
http://localhost:59423/SomeController/SomeActionMethod/7
또는 그런 것.
이제 route.config 파일을 수정해야하지만 정확히 어떤 수정이 이루어지지는 않습니다.
나는 이와 같은 것을 추가했습니다
routes.MapRoute(
name: "SomeName",
url: "SomeController/SomeActionMethod/{Id}",
defaults: new { controller = "SomeController", action ="SomeActionMethod" });
입력하면 이제보기에 액세스 할 수 있습니다.
http://localhost:59423/SomeController/SomeActionMethod/7
하지만 URL을 다음과 같이 입력하면
http://localhost:59423/SomeController/SomeActionMethod?Id=7
이것은 자동으로 다음으로 변경됩니다.
http://localhost:59423/SomeController/SomeActionMethod/7
적절한 URL로 자동 변경되어야합니다. 그렇지 않다면 어떻게해야합니까? 그리고 그렇다면 변경되지 않기 때문에 내가 놓친 것
행동 방법
public ActionResult SomeActionMethod(string Id)
{
return View((Id));
}
많은 시행 착오 끝에 내가 찾고 있던 것을 발견했습니다
내 질문에서 이미 언급했듯이 route.config 파일에 map.route를 추가 할 수 있습니다.
이 같은
routes.MapRoute(
name: "SomeName",
url: "SomeController/SomeActionMethod/{Id}",
defaults: new { controller = "SomeController", action ="SomeActionMethod" });
또는 "SomeActionmethod"에 두 개의 매개 변수가있는 경우
routes.MapRoute(
name: "SomeName",
url: "SomeController/SomeActionMethod/{Id}/{parameter2}",
defaults: new { controller = "SomeController", action ="SomeActionMethod" });
이제 쿼리 문자열이 있어야합니다. 이 같은
document.location = "/SomeController/SomeActionMethod?Id=" + SomeId + "¶meter2=" + SomeParameter;
이제 이미 map.route가 작성되었으므로 위의 쿼리 문자열을 다음과 같이 변경할 수 있습니다.
"/SomeController/SomeActionMethod/" + SomeId + "/" + SomeParameter;
이 URL이 호출 될 때마다 위에서 지정한대로 route.config 파일에서 제공 한 경로 정보와 매핑됩니다. 이에 따라 "SomeActionMethod"에 두 개의 매개 변수 {Id}와 {parameter2}가 있음을 알고 있으므로 자동으로 작업 메서드를 렌더링하고 변수를 전달합니다.
따라서 URL에 쿼리 문자열을 넣을 필요가 없으며 실제로 슬래시 "/"측면에서 더 친숙한 URL을 가질 수 있습니다.
같은 질문을 찾는 사람에게 도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다