显示自定义下拉列表

时间:2011-01-05 11:13:09

标签: asp.net-mvc asp.net-mvc-2

我有问题将不同类别的名称显示为下拉列表+显示一个通用名称,该名称是每个类别的选择。我需要这个才能创建搜索功能。

原始分类列表是:

  • Datorer& IT
  • Filosofi&宗教
  • 运动与健身Fritid
  • Djur& Natur
  • Konst& Musik
  • Psykologi& Pedagogik

显示为下拉列表的请求:

  • 所有类别
  • Datorer& IT
  • Filosofi&宗教
  • 运动与健身Fritid
  • Djur& Natur
  • Konst& Musik
  • Psykologi& Pedagogik

<%@ Import Namespace =“BokButik1”%>

<%@ Control Language =“C#”Inherits =“System.Web.Mvc.ViewUserControl”%>

<% using (Html.BeginForm()) {%> 

<fieldset> 
    <legend>Edit Album</legend> 

        <%: Html.DropDownList("KategoriID", new SelectList(ViewData["Kategoris"] as IEnumerable, "KategoriID", "KategoriNamn", Model.Kategoris))%> 



    <p> 
        <input type="submit" value="Save" /> 
    </p> 
</fieldset> 

<% } %>



namespace BokButik1.ViewModels
{
    public class SokningIndexViewModel
    {
        public List<Kategori> Kategoris { get; set; }
    }
}


namespace BokButik1.Controllers
{
    public class SokningController : Controller
    {


        private IKategoriRepository myIKategoriRepository = new KategoriRepository();

        //
        // GET: /Sokning/

        public ActionResult Index()
        {
            var SokningIndexViewModel = new SokningIndexViewModel 
            {
                Kategoris = myIKategoriRepository.HamtaAllaKategoriNamn()       
            };

            return View(SokningIndexViewModel);
        }


    }
}

1 个答案:

答案 0 :(得分:0)

只需在列表的开头添加一个新的Kategori项,但看起来您可能还在混合模型和ViewData

public ActionResult Index()
{

  var SokningIndexViewModel = new SokningIndexViewModel() 
  {
    Kategoris = myIKategoriRepository.HamtaAllaKategoriNamn();       
  };
  //add the 'all catagory' item
  SokningIndexViewModel.Kategoris.Insert(0, new Kategori() {
    KategoriID = 0,
    KategoriNamn = "All Category"
  });
  return View(SokningIndexViewModel);

}

在你看来

<%: Html.DropDownList("KategoriID", new SelectList(Model.Kategoris as IEnumerable, "KategoriID", "KategoriNamn"))%>