如何从ControllerMVC 2的下拉列表中获取选定的值

问题描述

| 我正在努力从mvc的硬编码下拉列表中获取选定的值,以下是代码: 视图:
<tr><td>No of Helmets</td><td><div class=\"editor-field\">

                <%: Html.DropDownList(\"helmets\",(SelectList)ViewData[\"size\"],\"--select--\")%>
                </div></td></tr>

                 <tr><td>No of Garages</td><td><div class=\"editor-field\">
                 <%: Html.DropDownList(\"garages\",(SelectList)ViewData[\"garages\"],\"--select--\")%>
控制器: //头盔下拉菜单
 [HttpPost]
    public ActionResult Create(Event trackday,FormCollection formValues)
    {Product product = new Product();//
        ViewBag.mode = \"create\";

        // for dropdown track
        ITrackRepository trackResp = new TrackRepository();
        IQueryable<Object> tracks = trackResp.GetVenuesSelectlist();
        ViewData[\"Venue\"] = new SelectList(tracks,\"VenueID\",\"Name\");
       var helmets = Enumerable.Range(1,200).Select(x => new SelectListItem { Value = x.ToString(),Text = x.ToString() });
        ViewData[\"helmets\"] = new SelectList(helmets.ToList(),\"Value\",\"Text\");

        // dropdown for garages
        var garages = Enumerable.Range(1,50).Select(x => new SelectListItem { Value = x.ToString(),Text = x.ToString() });
        ViewData[\"garages\"] = new SelectList(garages.ToList(),\"Text\");  product.QtyAvailable = Convert.ToInt32(formValues[\"garages\"]);


        if (ModelState.IsValid)
        {
            trackday.DateAdded = DateTime.Now;
            trackday.DateModified = DateTime.Now;
          //  productResp.Save();//
         //  trackday.Products.Add(product);
            trackdayResp.Add(trackday);
            trackday.Products.Add(product);
            trackdayResp.Save();
            return RedirectToAction(\"Index\");
        }
        else
        {
            return View();
        }


    }`
我如何在mvc post controller中获得上述2 dropdownlist的Selected值。     

解决方法

        您将下拉菜单称为“头盔”和“车库”,如果您调试操作并查看
formValues
字典,则应该看到这两个值。 或者,您可以更改模型以使其具有int类型的\“ Helmets \”和\“ Garages \”属性?模型联编程序应填充这些值。 或者,您可以将操作更改为:
public ActionResult Create(Event trackday,int? helmets,int? garages,FormCollection formValues)
应使用下拉列表的ID(选定值)填充。 更新资料 这是我的代码,该代码从集合或传递的属性中获取值: HTML:
<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"MainContent\" runat=\"server\">
  <h2><%: ViewData[\"helmetsCollectionValue\"]%></h2>
  <h2><%: ViewData[\"helmetsProperty\"]%></h2>
  <h2><%: ViewData[\"garagesCollectionValue\"]%></h2>
  <h2><%: ViewData[\"garagesProperty\"]%></h2>
  <% using (Html.BeginForm()) { %>
  <p>
    <%: Html.DropDownList(\"helmets\",(SelectList)ViewData[\"size\"],\"--select--\")%>
  </p>
  <p>
    <%: Html.DropDownList(\"garages\",(SelectList)ViewData[\"garages\"],\"--select--\")%>
  </p>
  <p>
    <input type=\"submit\" value=\"Submit\" />
  </p>
  <% } %>
</asp:Content>
控制器:
public ActionResult Index()
{
    var helmets = Enumerable.Range(1,200).Select(x => new SelectListItem { Value = x.ToString(),Text = x.ToString() });
    ViewData[\"helmets\"] = new SelectList(helmets.ToList(),\"Value\",\"Text\");

    // dropdown for garages
    var garages = Enumerable.Range(1,50).Select(x => new SelectListItem { Value = x.ToString(),Text = x.ToString() });
    ViewData[\"garages\"] = new SelectList(garages.ToList(),\"Text\");

    return View();
}

[HttpPost]
public ActionResult Index(FormCollection collection,int? garages)
{
    ViewData[\"helmetsCollectionValue\"] = collection[\"helmets\"];
    ViewData[\"helmetsProperty\"] = helmets;
    ViewData[\"garagesCollectionValue\"] = collection[\"garages\"];
    ViewData[\"garagesProperty\"] = garages;

    var helmetsList = Enumerable.Range(1,Text = x.ToString() });
    ViewData[\"helmets\"] = new SelectList(helmetsList.ToList(),\"Text\");

    // dropdown for garages
    var garagesList = Enumerable.Range(1,Text = x.ToString() });
    ViewData[\"garages\"] = new SelectList(garagesList.ToList(),\"Text\");

    return View();
}
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...