このDropDownListForの動作を確認していますが、成功していません。
私のコントローラは、私がデータベースで見つかったすべてのグループを置くSelectListItemsのリストを作成します。ASP.NET MVC2:DropDownListForが複数選択+モデルバインダーで正常に動作しない
viewModel.Groups = LoadGroups(viewModel.User.AssociatedGroups);
これは方法それ:あなたがそこにあれば、私が選択した要素を設定見ることができるように
private IList<SelectListItem> LoadGroups(List<String> associatedGroups)
{
var groups = _SecurityService
.LoadGroups()
.Select(e => new SelectListItem
{
Selected = associatedGroups.Contains<System.String>(e.Id.ToString()),
Value = e.Id.ToString(),
Text = e.Name
}).ToList();
return (groups);
}
をリスト内の関連するグループです。 私は私のカスタムのviewmodelのフィールド(グループ)にこのリストを置く:
public class UsersViewModel
{
public UsersViewModel()
{
this.Groups = new List<SelectListItem>();
}
public Models.User User { get; set; }
public IList<SelectListItem> Groups { get; set; }
}
をし、ビューにUsersViewModelを送ります。 (私のviewmodelのメンバーである)は、クラスのユーザーフィールドで
<%=Html.DropDownListFor(m => m.User.AssociatedGroups, (List<System.Web.Mvc.SelectListItem>)Model.Groups, new { @class = "dropDownGroups", multiple = "multiple" })%>
AssociatedGroups:
public List<String> AssociatedGroups { get; set; }
独特のものはここにありません、私は複数選択してドロップダウンを構築するために、このコードを使用します。 このコードを使用すると、選択したドロップダウンの要素が表示されないことがあります(属性が設定されていますが、二重にチェックされています)が、フォームを投稿するときに選択をAssociatedGroupsとバインドできます。 私は文字列でAssociatedGroups(Userクラスのフィールド)を変更した場合:
public String AssociatedGroups { get; set; }
私は反対の行動があります
を私がチェックし、ドロップダウンの要素を見ることはできませんが、私は、フォームを投稿する際に何がありますか結合、またはそれ以上の場合、1つの要素のみが結合されます。 私は一日のうちに問題の原因を解明しようと多くの時間を費やしましたが、私はさまざまな組み合わせを試みましたが、どれもうまくいかないようです。 私を助けることができる人はいますか?
ありがとうございました。
public class UsersViewModel
{
public IEnumerable<SelectListItem> Groups { get; set; }
public IEnumerable<string> SelectedGroupIds { get; set; }
}
、その後、あなたが複数の選択肢を可能にするためにListBoxFor
ヘルパーを使用します。リストが含まれます選択したグループIDが含まれています1と1:
ありがとうございましたDarin、私はSelectListのDropDownListForを変更しただけで役に立ちました。私はそれを貼り付けたようにすべての残りを保った、それは素晴らしい動作します。ありがとう。 – LeftyX
@vandalo、それは多分あなたは受け入れられたとして答えをマークできますか? –
申し訳ありませんダーリン、私は忘れてしまった! – LeftyX