3

データのリストをグリッド[基本的なhtmlテーブル]の形式で表示し、テキストボックスを配置して、グリッド内で編集し、値を投稿して保存できるようにしました。リストは大きくなく、5〜10行程度です。

コントローラでこれらのフォーム値にアクセスするにはどうすればよいですか?FormCollection動作していないようで、。を介して値にアクセスすることもできませんRequest.Form[]。ループして新しい値を取得できるように、リストの形式で戻したいと思います。

.cshtml

 <form action="/Parameter/StudentWeights" method="post">
     <table>
    <tr>
        <th>
            Category
        </th>
        <th>
            CategoryAlias
        </th>

        <th>
            YearCode
        </th>
          <th>
            ClassKto8
        </th>
        <th>
            Class9to12
        </th>
        <th></th>
    </tr>
    @foreach(var item in Model.StudentWeights) {
    <tr>
    <td>
            @Html.HiddenFor(modelItem => item.CategoryId)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Category)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CategoryAlias)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.YearCode)
        </td>
        <td>
            @Html.EditorFor(modelItem => item.ClassKto8)
        </td>
         <td>
            @Html.EditorFor(modelItem => item.Class9to12)
        </td>

    </tr>
}

</table>
<input type="submit" value = "Submit" />
 </form>

コントローラ

[HttpPost]
public ActionResult studentWeights(FormCollection collection)
{
    try
    {
        // TODO: Add update logic here

        //service.
        foreach (var item in collection)
        { 
            int x = item. // i want to loop through it and access the values.
        }
    }
    catch
    {
        return View();
    }
}

これらの値を取得する方法を教えてください。JEdi​​tableやサードパーティのjQueryツールを使用したくありません。

カスタムタイプを作成し、ボタンをクリックしたときにJavaScriptまたはjQueryで値を割り当てて、それをコントローラーアクションに送信する方法はありますか?

どうもありがとうございました、どんな提案も大いに役立つでしょう。

4

1 に答える 1

1

フォームコレクションには別の方法でアクセスする必要があります。フォームコレクションは、コントローラーに送信される値のキーと値のペアです。formcollection ["postvalue"]

[HttpPost]
public ActionResult studentWeights(FormCollection formCollection)
{
    foreach (string _formData in formCollection)
    {
        var x = formCollection[_formData];
    }

}

フォームコレクションを反復処理するいくつかの方法があります http://stack247.wordpress.com/2011/03/20/iterate-through-system-web-mvc-formcollection/

于 2012-10-11T12:41:25.323 に答える