2013-05-27 4 views
1

FormCollection을 전달하고 양식 데이터가 채워지고 MVC 프로젝트에서 내 컨트롤러의 작업 메서드에 게시하려고합니다. 다음 뷰의 예는 다음과 같습니다FormCollection이 채워지지 않습니다.

<asp:TextBox ID="txtClientLastName" name="txtClientLastName" runat="server" class="focus"/> 

(예, 알고 ASP 컨트롤을 MVC보기가 좋지 않다하지만 내가 가진 무엇에 태그 사이의보기에서 종료 코드뿐만 아니라 이유입니다 다시있다!.

<%=Html.ActionLink("Save","ClientInformationEdit",new {id=Model.PersonId})% 

내 작업을 호출 :

public ActionResult ClientInformationEdit(int id, FormCollection form) 
    { 
     //rptLOA_GridCommands(form, id); 

     CIHelper ch = new CIHelper(); 


     ch.person.LastName = form["txtClientLastName"]; 
     db.SaveChanges(); 

     return View(ch); 
    } 
을 나는

나는 내 행동에 링크 도우미를 사용했습니다)를 교체하지 않은3210

내 주소 passes the correct value but FormCollection form is null so form["txtClientLastName"] is null and I don 이유를 안다.

+1

요 ur 양식 HTML 요소 내에 버튼을 제출 하시겠습니까? 가능한 경우 – forseta

+0

보기를 게시하십시오. –

+0

나는 동일한 문제에 직면하고있다 – Steve

답변

0

추가 포스트 속성 아래 같은 :

 [HttpPost] 
public ActionResult ClientInformationEdit(int id, FormCollection form) 
    { 
     //rptLOA_GridCommands(form, id); 

     CIHelper ch = new CIHelper(); 


     ch.person.LastName = form["txtClientLastName"]; 
     db.SaveChanges(); 

     return View(ch); 
    } 

당신이 다음 코드에 다음을 추가 하이퍼 링크의 클릭에 양식을 게시 할 경우

@using (Html.BeginForm("Save", "ClientInformationEdit", FormMethod.Post)) 
{ 
    <input type="hidden" value="@Model.PersonId"/> 
    <asp:TextBox ID="txtClientLastName" name="txtClientLastName" runat="server" class="focus"/>  
    <input type ="submit"/> 
} 

에서 :

<%=Html.ActionLink("Save","ClientInformationEdit",new {id=Model.PersonId,onclick="document.getElementById('form-id').submit();"})%> 
+0

답장을 보내 주셔서 감사합니다. 나는 HttpPost를 추가하고 과거에 404 오류를 얻는 데 어려움을 겪었다. 이미보기에서 양식 태그가 있습니다. – user2284341

+0

보기를 게시하여 문제를 확인하기 쉽습니다. –

관련 문제