2012-03-06 14 views
1

私は現在、ビュー内のフォームからコントローラにデータを取得しようとしています。オブジェクトのリストを送信しています。私の目標は、複数形。ここの問題は、私はビューから戻って何も得られない、ちょうどヌル値です。MVC3のフォームからデータを取得する

@model List<Connection_User> 

@for (int i = 0; i < Model.Count ; i++) 
{ 
using(Html.BeginForm("DBLogin","User", FormMethod.Post, new { autocomplete ="off"})) 
{ 
    <fieldset> 

    <div class="editor-label"> 
     @ConsoleV2.Resources.Strings.Name 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(model => model[i].Username) 
     @Html.ValidationMessageFor(model => model[i].Username) 
    </div> 

    <div class="editor-label"> 
     @ConsoleV2.Resources.Strings.Password 
    </div> 
    <div class="editor-field"> 
     @Html.PasswordFor(model => model[i].Password) 
     @Html.ValidationMessageFor(model => model[i].Password) 
    </div> 
    <p> 
     <input type="submit" value="@ConsoleV2.Resources.Strings.Valid" /> 
    </p> 
    </fieldset> 
} 
} 

とコントローラの私の方法のプロトタイプは、あなたの助けを事前に

[HttpPost] 
public ActionResult DBLogin(Connection_User Logins) 
{ 


     return new EmptyResult(); 
} 

おかげです。

+0

は、あなたが送信されていますか見てFirebugのか垣間見るを使用してみましたか? –

+1

私はFiddlerを使用しました。投稿で送信されたデータは '%5B0%5D.User_ID = 30&%5B0%5D.DB_ID = 0&%5B0%5D.Username = TT&%5B0%5D.Password ='私は期待しています%5B0%5Dがなく、インデックスの数に対応する[x]のものです。どのように正しい方法でそれを取得するには? – Oflocet

+0

モデルの外観を指定してください – Manas

答えて

1

foreachを試してみてください代わりにfor

@foreach(var modelItem in Model) 
{ 
using(Html.BeginForm("DBLogin","User", FormMethod.Post, new { autocomplete ="off"})) 
{ 
    <fieldset> 

    <div class="editor-label"> 
     @ConsoleV2.Resources.Strings.Name 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(item => modelItem.Username) 
     @Html.ValidationMessageFor(item => modelItem.Username) 
    </div> 

    <div class="editor-label"> 
     @ConsoleV2.Resources.Strings.Password 
    </div> 
    <div class="editor-field"> 
     @Html.PasswordFor(item => modelItem.Password) 
     @Html.ValidationMessageFor(item=> modelItem.Password) 
    </div> 
    <p> 
     <input type="submit" value="@ConsoleV2.Resources.Strings.Valid" /> 
    </p> 
    </fieldset> 
} 
} 
+0

この投稿データはFiddlerによってキャッチされて送信されました: 'item.User_ID = 30&item.DB_ID = 0&item.Username = TT&item.Password = stuff' 私のpostメソッドではまだ何も返されません。 – Oflocet

+1

コントローラの属性を次のように項目に変更します: 'public ActionResult DBLogin(Connection_User item)' – Yorgo

+0

Yorgoさん、ありがとうございますyorgoさん、あなたの前に他の解決策を見つけましたが、ほぼ同じです。 = 'item ")]を返します。 つまり、' public ActionResult DBLogin([バインド(接頭辞= "item")] Connection_Userランダム名) 'ありがとう、もう一度! – Oflocet

関連する問題