我有以下代码填充下拉框,它选择当前的RunArea将其分配给选定的Run with run.RunRunAreaID 但是当我更新Run时,RunArea将其下载'没有发回ID,所以我最终得到了NULL
我的控制器
public ActionResult Edit(int? id)
{
Run run = db.Runs.Find(id);
ViewBag.RunAreaName = new SelectList(db.RunAreas, "ID", "RunAreaName", run.RunRunAreaID);
return View(run);
}
我的观点
@Html.DropDownList("RunAreaName")
这一切都在Run控制器中完成,Drop Down用不同的表/ Model填充Run Areas,因此One Run Area有很多运行。
修改
我有五个运行区域,它们都被传递到视图,所有五个运行区域显示在下拉框中,并为该特定运行选择了正确的一个,因此我需要 run.RunRunAreaId < / strong>即可。一切正常。
但是如果我在下拉列表中更新/更改运行区域,则视图将返回该字段的NULL。
修改
RunArea Model
public partial class RunArea
{
public int ID { get; set; }
public string RunAreaName { get; set; }
public List<Run> Runs { get; set; }
}
运行模型
public partial class Run
{
public int ID { get; set; }
public int RunReportID { get; set; }
public int RunRunAreaID { get; set; }
public string RunName { get; set; }
public bool RunSnowmaking { get; set; }
public bool RunGroomed { get; set; }
public bool RunDisplaySnowmaking { get; set; }
public bool RunLikely { get; set; }
public RunArea RunArea { get; set; }
}
延迟加载在推出XML时被关闭
答案 0 :(得分:1)
我希望这对你有用
ViewBag.RunAreaName = new SelectList(db.RunAreas, "ID", "RunAreaName", run.RunRunAreaID);
在您的视图中:
using (@Html.BeginForm(//add your form setting))
{
//first parameter to set id and name for drop down list
//second parameter bind data to it.
@Html.DropDownList("RunRunID", (SelectList)ViewBag.RunAreaName)
//add some other property here
}
请注意,我在ID
中将RunRunAreaID
更改为ViewBag.RunAreaName
。这将在提交到服务器
Model.RunRunAreaID
答案 1 :(得分:0)
在您的视图中使用此
@Html.DropDownList("RunAreaName",ViewBag.RunAreaName as SelectList,"Select Text")
也在这里
ViewBag.RunAreaName = new SelectList(db.RunAreas, "ID", "RunAreaName", run.RunRunAreaID);
我认为你不需要run.RunRunAreaId
ViewBag.RunAreaName = new SelectList(db.RunAreas, "ID", "RunAreaName")
就够了