MVC - UpdateModel和DropDownLists

时间:2009-08-22 23:51:57

标签: asp.net-mvc model-view-controller drop-down-menu updatemodel

我正在做MVC并在下拉列表中有查找值。在查找更新之前仅调用UpdateModel值而不调用afyer。我没有遇到任何错误。

我可以在我的cintroller中编辑和创建并使用以下代码:

ViewData [“SiteMaintenanceId”] =来自此./siteRepository.FindAllSiteMaintenances()中的m。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 个答案:

答案 0 :(得分:1)

似乎对此查询的回复非常少,所以我会亲自动手。

从文本中可以理解问题/要求有点困难,但如果我理解正确,你试图从下拉列表中取回一个值吗?如果没有让我知道,我会编辑它以便更好地适应。

假设我是正确的;

要设置我的下拉列表,我会做一些不同的事情。我认为这不重要,但我认为无论如何我都会分享它。

我有像这样的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"];

同样,我不确定这是否可以回答您的查询,如果没有,请在此答案中附上评论,我会相应调整。