MVC中的渲染下拉列表

本文关键字:下拉列表 MVC | 更新日期: 2023-09-27 18:03:07

下面是我的控制器,输出一个列表到局部视图。我的问题是我如何渲染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>

MVC中的渲染下拉列表

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

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

你的局部视图应该只有这个下拉菜单,你可以使用下面的Jquery函数在任何你想要的地方呈现这个局部视图

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