在MVC中渲染下拉列表

时间:2015-07-15 22:04:39

标签: c# asp.net asp.net-mvc

下面是我的控制器,它将列表输出到部分视图。我的问题是如何将ActionResult输出呈现为下拉列表。 (我不想使用ViewBag)

    using System.Web.Mvc;

namespace CMS.Controllers
{
    public class ArticleTypeController : Controller
    {
        // GET: ArticleType
        [ChildActionOnly]
        public ActionResult Get(int _siteId)
        {
            using (var ctx = new CMSEntities())
            {
                List<articleType> listArticleType = CMS.Models.Cms.getArticleTypes(CMS.Models.Cms.getSiteId()).ToList();
                List<SelectListItem> items = new List<SelectListItem>();
                foreach (var item in listArticleType)
                {
                    items.Add(new SelectListItem { Value = item.id.Value.ToString(), Text = item.name });
                }
                items.Add(new SelectListItem { Value = "0", Text = "--Select--", Selected=true  });
                return PartialView(items);
            }
        }
    }
}

视图如下所示:

@model List<SelectListItem>

<h2>test</h2>

1 个答案:

答案 0 :(得分:0)

如果您有一个要尝试绑定所选值的模型属性,则可以传递一个lambda表达式来指示要绑定的属性,框架将生成相应的名称:

@Html.DropDownList(m => m.FinancialYearID, MySelectList,
                   "Select option", new { @class= "foo" ,data-somename="dataName"})

你的局部视图应该只有这个下拉列表,你可以使用下面的Jquery函数在任何你想要的地方渲染这个局部视图

renderPartialInDiv("partial view url","div id or class")