문제

내가 사용하는 ASP.NET MVC 미리보기 4 하고 싶으면 사용하는 방법을 알고 라우팅 엔진을 위한 양식을 제출합니다.

예를 들어,내가로 다음과 같다:

routes.MapRoute(
            "TestController-TestAction",
            "TestController.mvc/TestAction/{paramName}",
            new { controller = "TestController", action = "TestAction", id = "TestTopic" }
            );

과 양식을 선언하는 다음과 같습니다.

<% using (Html.Form("TestController", "TestAction", FormMethod.Get))
   { %>
     <input type="text" name="paramName" />
     <input type="submit" />
<% } %>

렌더링하기:

<form method="get" action="/TestController.mvc/TestAction">
  <input type="text" name="paramName" />
  <input type="submit" />
</form>

결과 URL 의 양식이 제출되:

localhost/TestController.mvc/TestAction?paramName=value

하는 방법은 없는 이 양식을 제출하는 경로를 원하는 URL:

localhost/TestController.mvc/TestAction/value

유일한 솔루션을 생각할 수 있는 별도하는 작업 단지 검사를 요청 매개 변수하거나 자바스크립트를 사용한다.

도움이 되었습니까?

해결책

솔루션:

public ActionResult TestAction(string paramName)
{
    if (!String.IsNullOrEmpty(Request["paramName"]))
    {
        return RedirectToAction("TestAction", new { paramName = Request["paramName"]});
    }
    /* ... */
}

다른 팁

에서,당신의 경로를 없애{paramName}의 일부 URL.그것이 있어야:

TestController.mvc/TestAction

로 그 URL 을 원하는 요청을 경로.귀하의 형태로 할 것 다음을 게시하는 URL 이 있습니다.게시 양식을 값을 매핑을 매개 변수는 활동의 방법은 자동으로,그래서 걱정하지 않고 데이터를 전달 작용 방법입니다.

이해 내는 이가 어떻게 HTML 작동합니다.당신이 하는 경우 <form url="foo" method="get"> 게시 양식,다음 형식을 게시 foo?

param1=value1&...&paramn=valuen

그것은 함께 할 수 없 MVC.

또,어떤 부분의 나머지 않는 URL 을 위배?지 URL 지만,엄격한 정의를,그것은 휴식할 수 있습니다.나머지 부분을 지정하지 않는 쿼리 매개변수에 있는 URL 을 세그먼트입니다.이 경우에는,그들은 쿼리를 매개 변수입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top