【发布时间】:2015-10-06 06:03:28
【问题描述】:
我有以下课程,想根据特定条件过滤下拉列表。
模型类
public class Option
{
public int OptionID { get; set;}
public string OptionName { get; set; }
public int TechnicalCharacteristicID { get; set; }
public int LsystemID { get; set; }
public virtual ICollection<OptionValue> OptionValues { get; set; }
public virtual TechnicalCharacteristic TechnicalCharacteristic { get; set; }
public virtual Lsystem Lsystem { get; set; }
}
public class OptionValue
{
public int OptionValueID { get; set; }
public string OptionVal { get; set; }
public int OptionID { get; set; }
public virtual Option Option { get; set; }
public virtual ICollection< SetValue> SetValue { get; set; }
}
public class SetValue
{
public int SetValueID { get; set; }
public string Value { get; set; }
public bool Status { get; set; }
public int TcSetID { get; set; }
public int OptionValueID { get; set; }
public virtual OptionValue OptionValue { get; set; }
public virtual TcSet TcSet { get; set; }
}
public class TcSet
{
public int TcSetID { get; set; }
public string SetName { get; set; }
[Display(Name = "PhysicalUnit")]
public string PhysicalUnit { get; set; }
public int TechnicalCharacteristicID { get; set; }
public int DataFormatID { get; set; }
public virtual ICollection<SetValue> SetValues { get; set; }
public virtual DataFormat DataFormat { get; set; }
public virtual TechnicalCharacteristic TechnicalCharacteristic { get; set; }
}
public class TechnicalCharacteristic
{
public int TechnicalCharacteristicID { get; set; }
public string TCName { get; set; }
public virtual ICollection<TcSet> TcSets { get; set; }
//public virtual ICollection<Option> Options { get; set; }
}
我正在努力实现的目标
我想在SetVal 中保存每个选项的值。 SetVal中生成的Dropdownlist需要根据以下条件进行过滤(我无法实现,因为它使用其他类的参数)
OptionValue.Option.TechnicalCharacteristicID == TcSet.TCID
我有以下控制器类。我已将选择条件等同于预设值,因为我无法匹配选择条件的右侧。
我需要在表格中显示选择的结果。当我尝试将现有结果解析为表时,它显示类型不是 IEnumerable,即使它在模型类中声明为 IEnumerable..
控制器
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);
}
Create 的参数来自选项值控制器的函数调用。参数为OptionValueID和OptionID。
我不知道我是否有正确的方法来完成任务。
附加评论
即使使用预设值,该列表也不起作用。没有编译或运行时错误
调试详情
我从 select 语句中得到两个值,但两个值相同。它只对应于所需表中行的第一个值。
【问题讨论】:
-
使用以下代码生成您的选择列表数据
标签: c# entity-framework asp.net-mvc-5 html.dropdownlistfor