2012-04-24 3 views
5

양식 데이터를 ASP MVC 컨트롤러로 보내려고하지만 양식 모음이 비어 있습니다. 동작의 변수는 올바르게 바인딩됩니다. 이것은 나의 면도기 형태입니다asp mvc 양식 데이터를 보내지 않음

@foreach (var recipe in Model.RecipesInCategory) { 
    <form name="input" action="mycontroller/myAction/@Model.Id1/@Model.Id2" method="post"> 
    <fieldset> 
     <table > 
     <tr> 
      <td> 
      <input id="AddBtn" type="submit" value="Add" /> 
      <select id="dayOfWeek" > 
       <option value="Sunday">Sunday</option> 
       <option value="Monday">Monday</option> 
       <option value="Tuesday">Tuesday</option> 
       <option value="Wednesday">Wednesday</option> 
       <option value="Thursday">Thursday</option> 
       <option value="Friday">Friday</option> 
       <option value="Saturday">Saturday</option> 
      </select> 
      </td> 
     </tr> 
     </table> 
    </fieldset> 
    </form> 
    } 

그리고 여기 내 컨트롤러입니다. 두 GUID가 제대로 전달되지만 다우 변수는 항상 null입니다. 실제로 양식에는 항목이 전혀 없습니다.

[HttpPost] 
public ActionResult myAction(Guid Id1, Guid Id2) 
{ 
    var dow = this.Request.Form["dayOfWeek"]; 

이 페이지에는 루프 형태로 많은 양식이 있습니다. 그게 문제 야?

+1

글쎄, 당신은'Request.Form' 대신 행동 매개 변수를 사용해야합니다. – SLaks

+0

저는 WPF 세계에서 왔고 HTML은 매우 약합니다. 나는 HTML 도우미가이 시점에서 HTML에서 나를 너무 많이 차단한다고 생각한다. 추상화를 사용하기 전에 어떤 일이 일어나는지 배우고 싶습니다. –

+0

HTML 헬퍼에 대해 말하는 것이 아닙니다. 나는 행동 매개 변수에 대해 이야기하고있다. 그들은'Request'를 수동으로 읽는 것보다 훨씬 간단합니다. – SLaks

답변

21

브라우저는 name="" 속성이있는 양식 요소의 데이터 만 POST합니다.

+0

완벽! 그게 그랬어. 고마워. –

+1

그래서 내가 명확한 지 보도록하겠습니다. POST는 'name'을 사용하고 CSS/JS는 ID를 사용합니까? –

+2

정확합니다. 'name'은 유일 할 필요가 없습니다. (사실, 라디오 버튼의 경우 고유하지 않아야합니다.) – SLaks

관련 문제