0

formcollection から厳密な型のオブジェクトを生成して、そこからデータを抽出する可能性について疑問に思っていました。

つまり、formcollection オブジェクトのキーに応じてクラスを生成することは可能ですか?

例: キーが「ID3」で値が「false」のチェックボックスがあるとします。そして書くことができる:

bool CheckBox = FormObj.ID3.GetValue();

世界で最も便利なものではないかもしれませんが、それでも興味深いものです。

言語の制限によるものだと思います。

これについて何か考えはありますか?

編集:

さて、リスト (長さ不明) がありforeach、ビューで a を実行してチェックボックスを取得した場合、コントローラーでそれらをバインドするにはどうすればよいでしょうか?

    <% foreach (var item in Model.AllAttributes)
   { %>
<tr>
    <td>
        <%: Html.CheckBox(item.AttributeID.ToString(), item.Chosen) %>
    </td>
    <td>
        <%: item.AttributeTitle %>
    </td>
    <td>
        <%: item.Category.CategoryName %>
    </td>
</tr>
<% } %>

コントローラーには何を入れますか?

4

2 に答える 2

0

はい、それは ModelBinder によって行われ、DefaultModelBinder クラスは配列、IList、ICollection、および IDictionary オブジェクトを含むほとんどの .NET Framework 型で動作しますが、必要に応じて独自の ModelBinder を作成できます。詳細については、この MSDN の投稿を確認してください。

コントローラーのアクションは次のようになります

        [HttpPost]
        public ActionResult Create(Dinner dinner)
        {
            if (ModelState.IsValid)
            {
                int id = dinner.ID;
                ...
                ...
于 2011-03-11T09:04:13.373 に答える