2010-08-12 3 views
2

Visitor라는 모델을 기반으로하는 간단한 폼이 있습니다. id 텍스트 필드 중 하나에 의해 검색 버튼을 갖고 싶습니다. 사용자가 버튼을 클릭하고 방문자 정보로 페이지를 채울 수 있습니다. Web Forms에서 다음과 같이 할 것입니다 :ASP.NET MVC One Form, Two Buttons

검색 버튼을 누르기 전에 SignIn이라는 내보기 양식이 정상적으로 작동했습니다. 컨트롤러에 데이터를 게시하고 그 일을했습니다 :

[HttpPost] 
    public ActionResult SignIn(Visitor visitor) { 
     if (ModelState.IsValid) { 
      visitorRepoistory.Add(visitor); 
      visitorRepoistory.Save(); 
      return RedirectToAction("/"); 
     } else { 
      return View(new VisitorFormViewModel(visitor)); 
     } 
    } 

이제는 검색 단추가 내보기 양식에 배치되었으므로 완전히 잃어 버렸습니다. 검색 버튼을 컨트롤러에 연결하는 방법을 모르므로 다음과 같이 할 수 있습니다. 1.) 데이터를 찾은 다음 2.) 필드를 채우기 위해 로그인 양식으로 다시 되돌립니다. 이 작업을 수행하기 위해 취해야 할 단계는 무엇입니까?

감사합니다.

+0

여기를보세요 : http://stackoverflow.com/questions/2444245/handling 귀하의 경우에 특정

-2-buttons-submit-actions-in-a-single-view-form-asp-net-mvc-2-rtm –

+0

문제는, 다시 t로 돌아 가야한다는 것입니다. 그는 같은 페이지를 검색 결과로 필드를 채 웁니다. 나는 그것이 내가 혼란스러워하는 곳이라고 생각한다. – Mike

+0

검색을 수행하고 결과로 전달 된보기로 돌아갑니다. –

답변

2

이 질문은 SO

Multiple forms in ASP.NET MVC

에 여러 번 중복되었습니다 그러나 귀하의 질문에 대답하는 당신은 할 수있는 여러 형태를 한 페이지에 다른 작업이을 제출을 처리 할 수 ​​있습니다. 그것이 위의 링크가 설명하는 것입니다.

보기

<% Html.BeginForm("Search", "<ControllerName>"); %> 
    Your search controls here 
<% Html.EndForm(); %> 

<% Html.BeginForm("SignIn", "<ControllerName>"); %> 
    Your signin controls here 
<% Html.EndForm(); %> 

컨트롤러

[HttpPost] 
public ActionResult Search(FormCollection collection) 
{ 
    Do your search and return a view 
} 

[HttpPost] 
public ActionResult SignIn(Visitor visitor) 
{ 
    if (ModelState.IsValid) { 
     visitorRepoistory.Add(visitor); 
     visitorRepoistory.Save(); 
     return RedirectToAction("/"); 
    } else { 
     return View(new VisitorFormViewModel(visitor)); 
    } 
} 
+0

이것은 단일 양식입니다. 검색은 방문자 정보를 조회하고 동일한 양식의 필드를 채우는 한 가지 방법 일뿐입니다. – Mike

+0

맞습니까? 그렇지만 제출할 새로운 버튼을 추가 했으므로 기술적으로 여러 가지 작업을 단일 양식에 제출할 수 없기 때문에 원하는 각 작업 (예 : 검색 및 로그인 기능)에 대한 양식이 있어야합니다. –

+0

하나의 양식으로 여러 작업을 제출할 수 있습니다. 내 대답을 보라. –