Asp.net mvc 下拉框不返回值
我用下面的代码填充了一个下拉框,它选择当前运行区域,并使用Run.runareaid将其分配给所选的运行,但是当我更新运行时,运行区域下拉框没有发送回ID,因此我以NULL结束 我的控制器Asp.net mvc 下拉框不返回值,asp.net-mvc,Asp.net Mvc,我用下面的代码填充了一个下拉框,它选择当前运行区域,并使用Run.runareaid将其分配给所选的运行,但是当我更新运行时,运行区域下拉框没有发送回ID,因此我以NULL结束 我的控制器 public ActionResult Edit(int? id) { Run run = db.Runs.Find(id); ViewBag.RunAreaName = new SelectList(db.RunAreas, "ID", "RunAreaName", run.RunRunA
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")
这都是在运行控制器中完成的,下拉列表中填充了不同表/模型的运行区域,因此一个运行区域有多个运行
编辑
我有五个跑步区域,它们都被传递到视图中,所有五个跑步区域都显示在下拉框中,为特定跑步选择了正确的区域,因此我需要跑步。RunAreaId。一切正常
但是,如果我在下拉列表中更新/更改运行区域,视图将为该字段返回NULL
编辑
运行区模式
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时关闭在视图中使用此选项
@Html.DropDownList("RunAreaName",ViewBag.RunAreaName as SelectList,"Select Text")
也在这里
ViewBag.RunAreaName = new SelectList(db.RunAreas, "ID", "RunAreaName", run.RunRunAreaID);
我认为您不需要run.runareaid
ViewBag.RunAreaName = new SelectList(db.RunAreas, "ID", "RunAreaName")
够了吗我希望这对你有用
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
}
请注意,我在
ViewBag.RunAreaName
中将ID
更改为runAreaId
。这会将您的dropdownlist值绑定到模型。当提交到服务器时,RunAreaId基于您当前的代码,我假设您的dropdownlist与任何请求参数都没有关联,因此它不会将其值发送到服务器。但是为了更好地查看上下文,请向我展示您的表单以及用于更新runAh的编辑,我是否应该将其以表单形式发送回去???我认为您应该如下创建您的dropdownlist:@Html.dropdownlist(model=>model.runAreaId,ViewBag.RunAreaName)
,您将您的runareaid
绑定到dropdownlist,它将与formdoan中的另一个数据一起提交到服务器,谢谢,但我已经尝试了所有这些。我在MVC5中这样做没有任何帮助,所有生成的代码都是不同的。这对我以前很有用!这就是我遇到的问题,这都是在运行控制器中出现的。下拉列表中填充了运行区域,因此我得到:数据绑定:“mysite.Models.RunArea”不包含名为“runareaid”的属性。如果我这么做了。我做了一个修改,请看一看谢谢,冠军,就是那个!