MVC - UpdateModel и DropDownLists - PullRequest
       13

MVC - UpdateModel и DropDownLists

2 голосов
/ 23 августа 2009

Я делаю MVC и у меня есть значения поиска в выпадающих списках. При вызове UpdateModel обновляются только значения перед поиском, и ничто не мешает. Я не получаю ошибок, хотя.

Я могу редактировать, создавать и использовать следующий код в моем cintroller:

ViewData ["SiteMaintenanceId"] = из m в this._siteRepository.FindAllSiteMaintenances (). ToList ()

     select new SelectListItem
     {
       Text = m.Maintenance,
       Value = m.SiteMaintenanceId.ToString(),
       Selected = (m.SiteMaintenanceId == site.SiteMaintenanceId)
     };


       return View(new SiteFormViewModel(site,               
       this._siteRepository.FindAllSiteOperators()));

У меня есть следующее на мой взгляд:

Кажется, это нормально, и я могу получить выбранное значение при редактировании моего выпадающего меню и создавать работы.

Это мой первый раз, когда я делаю MVC, поэтому любая помощь очень ценится.

1 Ответ

1 голос
/ 23 августа 2009

Кажется, что на этот запрос очень мало ответов, поэтому я попробую свои силы.

Из текста немного сложно понять проблему / требование, но если я вас правильно понимаю, вы пытаетесь вернуть значение из выпадающего списка, верно? Если нет, дайте мне знать, и я отредактирую это для лучшего соответствия.

Предполагая, что я прав, однако;

Чтобы настроить раскрывающийся список, я делаю вещи немного иначе. Я не думаю, что это важно, но все равно решил поделиться этим.

У меня есть FormViewModel, как это;

public class CalendarEventFormViewModel
{
    public CalendarItem Event { get; set; }
    public SelectList States;
}

В моем ActionResult у меня есть следующее, чтобы предоставить Штаты;

fvm.States = new SelectList(Enumerations.EnumToList<Enumerations.AustralianStates>(), "Value", "Key", fvm.Event.state);

Затем я просто возвращаю это в представление.

Вид имеет выпадающий список, как это;

<% using (Html.BeginForm()) { %>
  <%=Html.DropDownList("selectedState", Model.States, new { @class="stateSelector" })%>
<%} %>

Итак, теперь у меня есть список штатов. На постбеке я хочу получить выбранное состояние. Итак ...

[AcceptVerbs(HttpVerbs.Post), ValidateInput(false), Authorize]
public ActionResult Add(FormCollection collection)
{
    CalendarItem fvm = new CalendarItem();
    UpdateModel(fvm);
}

Теперь это работает для меня, и все поля в объекте CalendarItem заполнены.

Однако, если вы не получаете свои значения, вы можете попробовать;

String state = collection["selectedState"];

Опять же, я не уверен, отвечает ли это на ваш запрос, и если нет, пожалуйста, прикрепите комментарий к этому ответу, и я внесу соответствующие изменения.

...