在控制器MVC3 Razor中获取下拉列表选定值

时间:2013-03-18 09:21:45

标签: asp.net-mvc razor

嗨,在我使用RAZOR的MVC3项目中,我有一个疑问。

我有一个名为CatlogPage.cshtml的页面。在该页面中,我有一个Dropdownlist控件。

 @(Html.Telerik().DropDownListFor(m => m.CatalogName)
     .BindTo(Model.CatalogName).HtmlAttributes(new { style = "width:235px" }))
   <input type="submit" value="Next" />

我有一个名为Hierarchy.cs的控制器: 在那个控制器中,

  public ActionResult Hierarchy()
       {

          // Need to get the selected value in DropDownList
          return View("Hierarchy");
       }

如何从dropDownList获取值(CatalogName)到控制器?

这是我的型号代码。

public List<SelectListItem> GetCatalogNameModel()
        {
            try{
                var cat = from s in _entities.Catalogs.ToList()
                          select new SelectListItem()
                                  {
                                      Text = s.CatalogName,
                                      Value = s.CatalogName
                                  };
                return cat.ToList();}
            catch (Exception ex)
            {
                CreateLogFiles.ErrorLog(HttpContext.Current.Server.MapPath("~/Logs/ErrorLog"), ex, "CatalogService", "GetCatlogName");
                return null;
            }

        }

2 个答案:

答案 0 :(得分:1)

因此,假设第一个代码片段来自强类型视图(对象DatabaseModel.CatalogModel)并且您正在将表单提交给Hierachy方法,那么传入CatalogModel并访问CatalogName应该是您的后续内容吗? / p>

public ActionResult Hierarchy(DatabaseModel.CatalogModel inputModel)
       {

          inputModel.CatalogName; //This will be the value from the drop down list
          return View("Hierarchy");
       }

答案 1 :(得分:1)

对于DropDownList,我使用Int prop来接收所选的Id。所以我的答案是: 将此属性添加到ViewModel:

public Int32 SelectedCatalogId {get;set;}

并将其绑定到DropDownList:

@Html.DropDownListFor(m => m.SelectedCatalogId, Model.GetCatalogNameModel())