2012-09-05 1 views
1

나는 내보기에서 폼을 가지고ASP.NET MVC에서 <form>에 의해 생성 된 http 요청에 내 자신의 매개 변수를 추가하는 방법은 무엇입니까?

@using(Html.BeginForm("Details", "Category", FormMethod.Get)) 
{ 
    <input type="text" name="param1" /> 
    <input type="submit" value="OK" /> 
} 

이 양식은 매개 변수 ~/category/details?view=list와 함께 페이지에 내가 경로의 쿼리 문자열에서보기 매개 변수의 값을 얻을하고 내 양식에 의해 생성 된 요청에 전달하려는. 그냥 ?param1=inputedText 대신 ?param1=inputedText&view=list 같은 요청 쿼리 문자열을 갖고 싶습니다. 예를 들어 양식에 숨겨진 입력을 추가하지 않고 view 값을 설정하지 않고 어떻게 할 수 있습니까?

+0

왜 숨겨진 필드를 추가하지 않으 도와 드릴까요? (Html.BeginForm ("Index", "Home", new {view = "list"}, FormMethod.Get))'와 같은 경로 값 사전을 허용하는'Html.BeginForm' 오버로드를 사용할 수 있습니다. 또한 이론적으로 자바 스크립트를 사용할 수 있지만 질문은 남아 있습니다 - 추론은 무엇입니까? – Giedrius

+0

이미 Html.BeginForm 과부하에 대한 답변이 있었지만 작성자가 삭제했을 가능성이 높습니다. 이미 설명했는데 작동하지 않습니다. "action = ~ \ action? view = list"속성을 사용하여 양식을 생성하지만 양식을 제출할 때 입력 양식 값만 제출되고 결과 경로 조회 문자열에는보기 매개 변수가 표시되지 않습니다. – Dmytro

+0

그리고 숨겨진 인풋을 사용하고 싶지는 않습니다. 왜냐하면 먼저 모든 폼이 제 팀원에 의해 디자인 되었기 때문에 둘째로 폼의 디자인을 다시 디자인하는 것이 아키텍처의 의미에서 틀릴 것이라고 제안하기 때문입니다. – Dmytro

답변

0
public ActionResult Details(string view) 
{ 
    ViewBag.view = view ; 
     return View(); 
} 

public ActionResult Details(string view ,string param1) 
{ 
    ViewBag.view = view ; 
     return View(); 
} 

이 approch은

@using(Html.BeginForm("Details", "Category", FormMethod.Get)) 
{ 
    <input type="Hidden" name="view" value=ViewBag.view > 
    <input type="text" name="param1" /> 
    <input type="submit" value="OK" /> 
} 
+0

동적 ViewBag 데이터 사용 그럼에도 불구하고 좋은 전략은 아니지만 그럼에도 불구하고 도움을 주심에 감사드립니다. – Dmytro

+0

젠장, 좀 더 찾아서 언젠가는 돌아올거야. –