사용 라우팅 엔진을 위한 양식이 제출 ASP.NET MVC 미리보기 4
-
08-06-2019 - |
문제
내가 사용하는 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&...¶mn=valuen
그것은 함께 할 수 없 MVC.
또,어떤 부분의 나머지 않는 URL 을 위배?지 꽤 URL 지만,엄격한 정의를,그것은 휴식할 수 있습니다.나머지 부분을 지정하지 않는 쿼리 매개변수에 있는 URL 을 세그먼트입니다.이 경우에는,그들은 쿼리를 매개 변수입니다.
제휴하지 않습니다 StackOverflow