私は基本的にKeyValuePairに相当するものをレンダリングするMVCビューを用意しています。これは以下のRazor構文を使用し、次のHTMLを生成します。バインドリストボックス(複数)をモデルに戻す
@Html.DropDownListFor(x => x.SelectedItems, new SelectList(Model.SelectedItems, "Key", "Key"), new { Class = "selectList selectedList", size = "2" })
HTML:
function GenericSubmit(formSelector, sender, callback) {
if (typeof (sender) != "undefined" && $(sender).hasClass('disabled')) {
return false;
}
var $that = $(formSelector);
var that = $that.get(0);
if ($that.valid()) {
$.ajax({
url: that.action,
type: that.method,
data: $(that).serialize(),
success: function (data, textStatus, jqXHR) {
callback.call(that, data);
}
});
}
return false;
}
私が経験しています問題は、あるしかし:
<select class="selectList selectedList" id="SelectedItems" name="SelectedItems" size="2">
<option value="842">Item 1</option>
<option value="326">Item 2</option>
<option value="327">Item 3</option>
</select>
私は以下のように、私たちのフォームを投稿するjQueryと一般的な機能を使用して手動でフォームを掲示しています送信されているデータだけが実際の値です(これはJQが動作する方法です)。しかしIEnumerableにバインドする必要があります。
フォームに送信されたPOSTデータを見ると、次の値が送信されていることがわかります。私のモデルにnullコレクションがある理由がわかります。ここに私のKeyValueViewModelされる - 追加明確にするために
/// <summary>
/// An response for dealing with list type entities
/// </summary>
public class ListEntityResponse : EntityScreenResponse
{
/// <summary>
/// Contains a Enumerable of items that can be selected
/// </summary>
public List<KeyValueViewModel> AvailableItems { get; set; }
/// <summary>
/// Contains a Enumerable of items that have been selected
/// </summary>
public List<KeyValueViewModel> SelectedItems { get; set; }
public ListEntityResponse()
{
AvailableItems = new List<KeyValueViewModel>();
SelectedItems = new List<KeyValueViewModel>();
}
}
:私は、このためのハイとローの検索した
public class KeyValueViewModel
{
public string Key { get; set; }
public string Value { get; set; }
}
次のように
SelectedItems:842
SelectedItems:326
SelectedItems:327
私のモデルがありますしかし、作品に何かを見つけることができないようだ、どんな助けも高く評価されるだろう!
ありがとう、
はい、私は私のバックエンドでそれを持っているが、私ドンますこのデータのためにDBをもう一度打つことを本当にしたいと思っています..しかし、私はフォームで提出されたものだけを気にするべきだと同意します...しかし、一方ではIEnumとして使用する必要がありますアイテムをレンダリングして選択項目を編集できるようにします。 リンクをありがとう - 私はそれを読んで、チャックノリスが言うものを参照してください! –
まだ喜んではいません。問題を説明するための画像を追加しました –