0

ユーザー オブジェクトがあります。このオブジェクトには、ユーザー、ユーザーのサブスクリプション レベル、ユーザーがメンバーである、またはメンバーになる可能性のあるすべてのグループのリストの 3 つのデータが含まれています。このデータをスマートな方法で編集できるビューを生成する必要があり、それを強く型付けされたモデルに関連付けたいと考えています。

考えられるグループごとに 1 つのチェック ボックスを用意し、アプリのユーザーがチェック ボックスをオンまたはオフにしてメンバーシップを変更できるようにしたいと考えています。私が抱えている問題は、私の行動です

[HttpPost]
public ActionResult Edit(UserModel usr)
{

}

ビューのチェックボックスから値を受け取ることはありませんが、他のプロパティは正しく設定されています。

私の最初のビューは次のようになりました。

...
@Html.EditorFor(m => m.UserName)
@Html.EditorFor(m => m.Subscription)
@Html.EditorFor(m => m.Membership) // just displays the string and bool values
...

2回目の刺し[これも失敗]

...
@Html.EditorFor(m => m.UserName)
@Html.EditorFor(m => m.Subscription)

@foreach(var itm in Model.Membership) 
{
    @Html.EditorFor(_ => itm)
}
...

私も試してみましたが、運が悪く<input>、使用せずにタグを手作りできませんでした.@Html.

UserModel は次のようになります。

public class UserModel
{
    public string UserName { get; set; }
    public int Subscription { get; set; }
    public Dictionary<String, bool> Membership { get; set; } // this is the problem
}
4

1 に答える 1

0

これを解決するためのより良い方法があるかもしれませんが、私Dictionary<String,Bool>List<SelectListItem>

正しい投稿データを生成するビュー コードは次のとおりです。

...
<ul>
@for (int i = 0; i < Model.Membership.Count; i++ )
{
    <li>
        @Html.HiddenFor(_ => Model.Membership[i].Text)
        @Html.HiddenFor(_ => Model.Membership[i].Value)
        @Html.CheckBoxFor(_ => Model.Membership[i].Selected) @Model.Membership[i].Text
    </li>
}
</ul>
...
于 2012-11-13T20:02:39.400 に答える