Привязать <select>к модели представления в ASP.NET MVC 3 - PullRequest
0 голосов
/ 26 октября 2011

У меня есть следующий вид модели

public class FooViewModel
{
    public int SelectedCategoryId { get; set; }
    public IEnumerable<CategoryDto> AvailableCategories { get; set; }
}

На мой взгляд, я использую шаблон jquery для привязки моих данных к тегу select

<script type="text/javascript">
$(document).ready(function () {
  var categories = @Model.AvailableCategories.ToJson();
  var categoryMarkup = '<option value="${Id}"${Selected}>${Name}</option>';
  $.template("categoryTemplate", categoryMarkup);
  $.tmpl("categoryTemplate", categories).appendTo($('#categories'));
});
</script>

<select id="categories"></select>

Что мне нужно сделать, чтобы убедиться, что мое свойство SelectedCategoryId viewmodel заполнено в POST? Я бы предпочел не использовать Html.DropDownList, если я смогу сойти с рук

1 Ответ

1 голос
/ 26 октября 2011

Просто добавьте его в форму, используя помощники HTML. Ex.

Html.HiddenFor(o=>o.SelectCategoryId)

Если ваше поле со списком меняется, просто установите событие onchange

("#selectId").change(function(){
//something like this - untested
$("#SelectCategoryId").val(this.value);
 });

Если вы не используете явный вызов jQuery .ajax (), в этом случае вам нужно будет добавить это значение в данные. Что вы используете, когда вы публикуете? Я нигде не вижу вашу форму выше

...