【问题标题】:MVC - UpdateModel and DropDownListsMVC - UpdateModel 和 DropDownLists
【发布时间】:2009-08-22 23:51:57
【问题描述】:

我正在做 MVC,并在下拉列表中查找值。当调用 UpdateModel 时,只有在查找更新之前的值,之后什么都没有。不过我没有收到任何错误。

我可以在我的控制器中编辑、创建和使用以下代码:

ViewData["SiteMaintenanceId"] = from m in 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()));

我的观点如下:

 <%= Html.DropDownList("SiteOperatorId")%>

这似乎可以绑定,并允许我在编辑下拉菜单时获取选定的值并创建作品。

这是我第一次做 MVC,所以非常感谢任何帮助。

【问题讨论】:

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


    【解决方案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"];
    

    同样,我不确定这是否回答了您的问题,如果没有,请在此答案中附上评论,我会做出相应调整。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      相关资源
      最近更新 更多