У меня есть следующий класс и вы хотите отфильтровать раскрывающийся список на основе определенного условия.Применить фильтрацию для создания выпадающего списка
Классы модели
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
. DropDownList генерируется в SetVal
потребности в фильтруются на основе следующего условия (я не могу реализовать состояние как, например, как он использует параметры из других классов)
OptionValue.Option.TechnicalCharacteristicID == TcSet.TCID
У меня есть следующий класс контроллера. Я приравнял условие select с заданным значением, потому что мне не удалось сопоставить правую часть условия select.
Мне нужно отобразить результат выбора в таблице. Когда я пытаюсь разрешить существующий результат таблицы показывает, что тип не 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);
}
Параметры НАПИСАТЬ происходят из вызов функции из контроллера значения параметра. Параметры: OptionValueID
и OptionID
.
Я не знаю, есть ли у меня правильный подход для достижения этой задачи.
Дополнительные комментарии
Даже с заданным значением в списке не работает. Там нет компиляции или во время выполнения ошибки
Отладочной
я получаю два значения от оператора выбора, но оба значения совпадают. Это соответствует только первому значению строки из требуемой таблицы.
используйте следующий код, чтобы сгенерировать данные списка избранного – alikuli