私は瞬間があります。私はListBox
から選択されたアイテムを、post
イベントを処理するアクションメソッドのパラメータにバインドすることはできません。問題をListBoxから選択した項目にバインドする
Model
型SystemRoleList
である:このコードはListBox
を生成
public class SystemRole {
public Int32 Id { get; set; }
public String Name { get; set; }
}
:
public class SystemRoleList {
public IEnumerable<SystemRole> List { get; set; }
}
SystemRole
は以下のように定義される
<%: this.Html.ListBox("Roles", new SelectList(Model.List, "Id", "Name")) %>
選択したアイテムを受信するアクションメソッドでありますtのように設定する彼:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateSystemRoles(Int32[] roles) {
// do something with the results....
}
トラブルはroles
は常にnull
であるということです。私は他のデータ型 - string[]
、ICollection<int>
などを試してみました。 Request.Form["Roles[]"]
を実行すると、Request.Form
コレクションの値が表示されます。 ListBox
からこれらのアイテムを選択すると、標準値は1,3,4
になる可能性があります。
ListBox
またはmyパラメータのいずれかをMVCが自動的に値をバインドするようにするにはどうすればよいですか?
あなた 'Request.Form'コレクションはどのようなものが見えますか? 'roles'には複数のエントリがありますか、代わりに' roles [] 'ですか? – Yuck
@Yuck、 'Request.Form [" Roles "] =" 1,2 "'と 'Request.Form [" Roles [] "] = null'です。ロールには複数のエントリがあります: 'Roles = 1&Roles = 3'。 –
私はそれが問題だと思う - 私のフォームの値には 'roles'があり、' roles'は含まれていません。これは部分的なビューで使用されているので、より高いものがおそらく干渉し、その代わりにその方法で投稿する原因になります。この時点で、TelerikのMVC拡張機能を推測することになります。ご協力いただきありがとうございます。 – Yuck