データのリストをグリッド[基本的な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();
}
}
これらの値を取得する方法を教えてください。JEditableやサードパーティのjQueryツールを使用したくありません。
カスタムタイプを作成し、ボタンをクリックしたときにJavaScriptまたはjQueryで値を割り当てて、それをコントローラーアクションに送信する方法はありますか?
どうもありがとうございました、どんな提案も大いに役立つでしょう。