Asp.net mvc 获取控制器MVC3中的dropdownlist选定值

Asp.net mvc 获取控制器MVC3中的dropdownlist选定值,asp.net-mvc,razor,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="N

嗨,在我与RAZOR的MVC3项目中,我有一个疑问

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

 @(Html.Telerik().DropDownListFor(m => m.CatalogName)
     .BindTo(Model.CatalogName).HtmlAttributes(new { style = "width:235px" }))
   <input type="submit" value="Next" />
如何从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;
            }

        }
公共列表GetCatalogNameModel()
{
试一试{
var cat=来自_entities.Catalogs.ToList()中的s
选择新的SelectListItem()
{
Text=s.CatalogName,
Value=s.CatalogName
};
返回cat.ToList();}
捕获(例外情况除外)
{
CreateLogFiles.ErrorLog(HttpContext.Current.Server.MapPath(“~/Logs/ErrorLog”),例如,“CatalogService”,“GetCatalogName”);
返回null;
}
}

因此,假设第一个代码片段来自强类型视图(object DatabaseModel.CatalogModel),并且您将表单提交给Hierachy方法,然后传入CatalogModel并访问CatalogName,您的目标应该是什么

i、 e


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

public Int32 SelectedCatalogId {get;set;}
并将其绑定到DropDownList:

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

真的需要更多关于这方面的信息,您的意思是将顶层代码中的模型发布到Hierarchy方法,因为如果是,您将丢失将模型传递到Hierarchy的过程。不确定顶层代码中的模型是什么though@OJay请看我更新的代码抱歉,但这似乎只是一个返回selectitems列表的方法。我从顶部的一个视图(具有Model属性的视图)的代码片段中更多地说明了模型是什么。CatalogName@modelDatabaseModel.CatalogModel
public Int32 SelectedCatalogId {get;set;}
@Html.DropDownListFor(m => m.SelectedCatalogId, Model.GetCatalogNameModel())