C# 应用筛选以生成下拉列表
我有下面的类,希望根据特定条件筛选下拉列表 模型类 我有以下控制器类。我已将选择条件等同于预设值,因为我无法匹配选择条件的右侧 我需要在表格中显示选择的结果。当我尝试将现有结果解析为表时,它显示类型不是IEnumerable,即使它在模型类中声明为IEnumerable 控制器 Create的参数来自选项值控制器的函数调用。参数是OptionValueID和OptionID 我不知道我是否有完成任务的正确方法 补充意见 即使使用预设值,列表也不起作用。没有编译或运行时错误 调试详细信息C# 应用筛选以生成下拉列表,c#,entity-framework,asp.net-mvc-5,html.dropdownlistfor,C#,Entity Framework,Asp.net Mvc 5,Html.dropdownlistfor,我有下面的类,希望根据特定条件筛选下拉列表 模型类 我有以下控制器类。我已将选择条件等同于预设值,因为我无法匹配选择条件的右侧 我需要在表格中显示选择的结果。当我尝试将现有结果解析为表时,它显示类型不是IEnumerable,即使它在模型类中声明为IEnumerable 控制器 Create的参数来自选项值控制器的函数调用。参数是OptionValueID和OptionID 我不知道我是否有完成任务的正确方法 补充意见 即使使用预设值,列表也不起作用。没有编译或运行时错误 调试详细信息 我从se
我从select语句中得到两个值,但这两个值是相同的。它只对应于所需表中行的第一个值。使用以下代码生成选择列表数据
public IEnumerable<SelectListItem> SelectList()
{
List<SelectListItem> selectList = new List<SelectListItem>();
var listOfCat1 = db.TcSets.ToList();
if (listOfCat1 != null)
{
if (listOfCat1.Count>0)
{
foreach (var item in listOfCat1)
{
SelectListItem sVM = new SelectListItem();
sVM.Value = item.Id.ToString();
sVM.Text = item.Name;
selectList.Add(sVM);
}
}
}
return selectList.AsEnumerable();
}
在您的视图中,使用以下代码行调用下拉列表
<div class="form-group" >
@Html.LabelFor(model => model.TcSetID , "Product Category", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(x => x.TcSetID , @ViewBag.ProductCategoriesList as IEnumerable<SelectListItem>, "--- Select Tc Set ---", new { @class = "form-control", @style = "background-color:yellow;border-color:royalblue" })
@Html.ValidationMessageFor(model => model.TcSetID , "", new { @class = "text-danger" })
</div>
</div>
我希望这会有所帮助。使用以下代码生成您的selectlist数据谢谢。我会试试你的代码。但我已经发现另一种可能不是最好的做法。让我们看看你发现了什么。它可能会帮助其他人。
public ActionResult Create(int OptionValID, int OptionID)
{
var model = new SetValue
{
OptionValueID = OptionValID
};
//var tcid =
// ViewBag.OptionValueID = new SelectList(db.OptionValue, "OptionValueID", "OptionVal");
var tcSet = db.SetValue.Include(x=>x.TcSet).FirstOrDefault(x=>x.OptionValue.Option.TechnicalCharacteristicID==4);
if (tcSet!=null)
{
model.TcSet = tcSet.TcSet;
}
ViewBag.TcSetID = new SelectList(db.TcSet, "TcSetID", "SetName");
return View(model);
}
public IEnumerable<SelectListItem> SelectList()
{
List<SelectListItem> selectList = new List<SelectListItem>();
var listOfCat1 = db.TcSets.ToList();
if (listOfCat1 != null)
{
if (listOfCat1.Count>0)
{
foreach (var item in listOfCat1)
{
SelectListItem sVM = new SelectListItem();
sVM.Value = item.Id.ToString();
sVM.Text = item.Name;
selectList.Add(sVM);
}
}
}
return selectList.AsEnumerable();
}
ViewBag.ProductCategoriesList = SelectList();
<div class="form-group" >
@Html.LabelFor(model => model.TcSetID , "Product Category", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(x => x.TcSetID , @ViewBag.ProductCategoriesList as IEnumerable<SelectListItem>, "--- Select Tc Set ---", new { @class = "form-control", @style = "background-color:yellow;border-color:royalblue" })
@Html.ValidationMessageFor(model => model.TcSetID , "", new { @class = "text-danger" })
</div>
</div>