Asp.net mvc 4 无法在mvc 4的部分视图中填充下拉控件
我想填充部分视图的下拉控件 这是我的模型:Asp.net mvc 4 无法在mvc 4的部分视图中填充下拉控件,asp.net-mvc-4,Asp.net Mvc 4,我想填充部分视图的下拉控件 这是我的模型: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace HelpDeskSystem.Models { public class CategoryModel { public string CategoryId { get; set; }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace HelpDeskSystem.Models
{
public class CategoryModel
{
public string CategoryId { get; set; }
public string CategoryName { get; set; }
public int frequency { get; set; }
// public virtual ICollection<SubcategoryModel> subCategory { get; set; }
}
}
没有具有键“CategoryId”的“IEnumerable”类型的ViewData项。
有人能告诉我如何填写我的部分视图中的下拉列表吗??
因为我是mvc的初学者在主视图中,您的模型是@model IEnumerable,但当您调用分部时,您传递的是一个新的CategoryModel,根据定义,该模型将为空。要使数据直接传递到分部,请更改对的分部调用
@Html.Partial("Createcategories", model)
然后,您将需要将您的partial to上的模型更改为
@model IEnumerable<HelpDeskSystem.Models.CategoryModel>
由于您只是在中传递列表,因此没有一个变量可以将所选值绑定到使用DropDownListFor的列表中
通常,您不会只将列表传递给主视图,而直接传递给局部视图。如果有更多数据,可以将列表添加到viewModel
public class ViewModel
{
//other fields used on your main page
public List<SelectListItem> CategoryList { get; set; }
}
希望这会有所帮助非常感谢你的帮助。它很有效。再次感谢你
@Html.DropDownListFor(Model => Model.CategoryId,null, "Select Category", new { id = "ddlCategory"})
@Html.Partial("Createcategories", model)
@model IEnumerable<HelpDeskSystem.Models.CategoryModel>
@Html.DropDownList("Selected", Model)
public class ViewModel
{
//other fields used on your main page
public List<SelectListItem> CategoryList { get; set; }
}
@Html.Partial("Createcategories", model.CategoryList)