У меня есть представление MVC, которое отображает то, что в основном эквивалентно KeyValuePair, используя синтаксис Razor ниже, а затем генерирует следующий HTML.Bind ListBoxFor (несколько) назад к модели
@Html.DropDownListFor(x => x.SelectedItems, new SelectList(Model.SelectedItems, "Key", "Key"), new { Class = "selectList selectedList", size = "2" })
HTML:
<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 и родовой функцию POST наших форм, как показано ниже:
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;
}
Однако проблема, которую я испытываю, это что только передаваемые данные являются фактическими значениями (я ожидаю, что это работает JQ ..), но мне нужно привязать к IEnumerable.
От взгляда на данные POST, которые отправляются в форму, я могу видеть только следующие значения, которые отправляются - что я ожидаю, почему моя модель имеет нулевую коллекцию.
SelectedItems:842
SelectedItems:326
SelectedItems:327
Моя модель выглядит следующим образом:
/// <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>();
}
}
Для большей ясности - вот мой KeyValueViewModel:
public class KeyValueViewModel
{
public string Key { get; set; }
public string Value { get; set; }
}
Я искал высоко и низко для этого , но, похоже, не может найти ничего по этому вопросу, которое будет работать, любая помощь будет оценена!
Спасибо,
Да будет это в моем внутреннем интерфейсе, но дон «Я действительно хочу снова попасть в БД для этих данных. Но я согласен, что это должно заботиться только о вещах, представленных в форме ... но, с другой стороны, мне это нужно как IEnum, потому что он будет использоваться для рендеринга элементов, чтобы они могли редактировать их. Спасибо за ссылку - я прочитаю ее и посмотрю, что говорит Чак Норрис! –
По-прежнему нет радости, я боюсь, я добавил изображение, чтобы помочь проиллюстрировать мою проблему –