2012-04-24 7 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> 
    } 

ここは私のコントローラです。 2つのGUIDが適切に入力されていますが、dow変数は常に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は '名前'を使用し、CSS/JSはIDを使用しますか? –

+2

正確に。 'name'は一意である必要はありません。 (実際には、ラジオボタンのために、それは一意ではありません) – SLaks

関連する問題