C# 带钥匙问题的MVC下拉列表
只需要另一双眼睛。错误是:C# 带钥匙问题的MVC下拉列表,c#,asp.net-mvc,C#,Asp.net Mvc,只需要另一双眼睛。错误是: The ViewData item that has the key 'BrandId' is of type 'System.Int32' but must be of type IEnumerable<SelectListItem>. 控制器 model.BrandForDropDown = Repository.GetBrandsForDropDown(); 我还尝试了列表以及模型和视图等,同样的错误您的代码有一个问题。创建selectlist
The ViewData item that has the key 'BrandId' is of type 'System.Int32'
but must be of type IEnumerable<SelectListItem>.
控制器
model.BrandForDropDown = Repository.GetBrandsForDropDown();
我还尝试了
列表
以及模型和视图等,同样的错误您的代码有一个问题。创建selectlist时,需要指定dataValueField和dataTextField。因此,要么在服务器方法中这样做,要么在视图中使用它时这样做
这就是你在你的方法中所做的
select new SelectListItem
{
Value = brand.BrandID.ToString(),
Text = brand.BrandName
}).OrderBy(x => x.Text),"Value","Text");
另一个选项是简单地将属性类型更改为List
,并更新方法以返回该类型
public int BrandId { get; set; }
public List<SelectListItem> BrandForDropDown { get; set; }
public int BrandId{get;set;}
公共列表BrandForDropDown{get;set;}
如果条件失败,请确保返回相同的类型
public List<SelectListItem>GetBrandsForDropDown()
{
if(Membership.GetUser() != null)
{
// your existing code
select new SelectListItem
{
Value = brand.BrandID.ToString(),
Text = brand.BrandName
}).OrderBy(x => x.Text));
}
return new List<SelectListItem();
}
public ListGetBrandsForDropDown()
{
if(Membership.GetUser()!=null)
{
//您现有的代码
选择新的SelectListItem
{
Value=brand.BrandID.ToString(),
Text=brand.BrandName
}).OrderBy(x=>x.Text));
}
return new List您的代码有一个问题。创建selectlist时,您需要指定dataValueField和dataTextField。因此,您必须在服务器方法中或在视图中使用它时在中执行此操作
这就是你在你的方法中所做的
select new SelectListItem
{
Value = brand.BrandID.ToString(),
Text = brand.BrandName
}).OrderBy(x => x.Text),"Value","Text");
另一个选项是简单地将属性类型更改为List
,并更新方法以返回该类型
public int BrandId { get; set; }
public List<SelectListItem> BrandForDropDown { get; set; }
public int BrandId{get;set;}
公共列表BrandForDropDown{get;set;}
如果条件失败,请确保返回相同的类型
public List<SelectListItem>GetBrandsForDropDown()
{
if(Membership.GetUser() != null)
{
// your existing code
select new SelectListItem
{
Value = brand.BrandID.ToString(),
Text = brand.BrandName
}).OrderBy(x => x.Text));
}
return new List<SelectListItem();
}
public ListGetBrandsForDropDown()
{
if(Membership.GetUser()!=null)
{
//您现有的代码
选择新的SelectListItem
{
Value=brand.BrandID.ToString(),
Text=brand.BrandName
}).OrderBy(x=>x.Text));
}
返回新列表请遵循我的技巧
控制器
ViewBag.BrandForDropDown = Repository.GetBrandsForDropDown();
HTML
@Html.DropDownListFor(x => x.BrandId, ViewBag.BrandForDropDown as
List<SelectListItem>, "- Brand -")
@Html.DropDownListFor(x=>x.BrandId,ViewBag.BrandForDropDown作为
列表“-品牌-”)
谢谢。请遵循我的技巧
控制器
ViewBag.BrandForDropDown = Repository.GetBrandsForDropDown();
HTML
@Html.DropDownListFor(x => x.BrandId, ViewBag.BrandForDropDown as
List<SelectListItem>, "- Brand -")
@Html.DropDownListFor(x=>x.BrandId,ViewBag.BrandForDropDown作为
列表“-品牌-”)
谢谢。发回后返回相同视图时是否出现此错误?@Izzy否这是初始视图加载如果您的SelectList
没有data@Izzy你在空的btw上是对的…很高兴我能帮上忙!有时这可能是一个非常误导人的错误。在发回你要返回的地方后,这个错误是什么是否正在查看相同的视图?@Izzy否这是初始视图加载如果您的SelectList
没有data@Izzy你在空的btw上是对的…很高兴我能帮助你!这有时会是一个非常误导的错误