Asp.net mvc 2 SelectList对象selectedValue问题
我对SelectedItems的selectedValue选项有问题,由于某种原因,它不会选择该项,尽管它在列表中 我的控制器:Asp.net mvc 2 SelectList对象selectedValue问题,asp.net-mvc-2,selectlist,Asp.net Mvc 2,Selectlist,我对SelectedItems的selectedValue选项有问题,由于某种原因,它不会选择该项,尽管它在列表中 我的控制器: public ActionResult CreateTransformer(string edit) { var equipment = GenIDQueries.FindEquipment(edit); ViewData["Feeder"] = new SelectList(GenIDQueries.GetFe
public ActionResult CreateTransformer(string edit)
{
var equipment = GenIDQueries.FindEquipment(edit);
ViewData["Feeder"] = new SelectList(GenIDQueries.GetFeeders(equipment.OpsCentre.ToString()),
"CircuitID",
"CircuitDescription",
equipment.Feeder);
return View(equipment);
}
public ActionResult CreateTransformer(string edit)
{
var equipment = GenIDQueries.FindEquipment(edit);
var items = GenIDQueries.GetFeeders(equipment.OpsCentre.ToString());
var model = new MyViewModel
{
SelectedValue = equipement.CircuitID,
Items = new SelectList(items, "CircuitID", "CircuitDescription")
};
return View(model);
}
设备。给料机为整型
我的看法是:
<p>
<b><%=Html.LabelFor(m=>m.Feeder) %>:</b><font color="red">*</font>
<%=Html.DropDownListFor(m=>m.Feeder, ViewData["Feeder"] as SelectList, "") %>
<%= Html.ValidationMessageFor(m => m.Feeder)%>
</p>
My GenIDQueries.GetFeeders:
public static IEnumerable<Circuit> GetFeeders(string distNo)
{
int distNoNumber;
if ( int.TryParse(distNo, out distNoNumber))
{
return ActiveRecordLinq.AsQueryable<Circuit>()
.Where(x => x.DistrictCircuitRelations
.Any(y => y.District.DistrictNo == distNoNumber))
.OrderBy(x => x.CircuitDescription)
.Select(x => new Circuit
{
CircuitID = x.CircuitID,
CircuitDescription = x.CircuitDescription
});
}
return new List<Circuit>();
}
我已经验证了我想要选择的元素确实是由GenIDQueries返回的,但是当页面加载时,它从未选择该选项,在HTML源代码中,该项也没有被选择
谢谢你的帮助 设置选定值时,应将其设置为选定的CircuitID,而不是馈线对象。为什么要使用此选项?我认为VIEWDATA作为一种病毒开始于微软开放空间实验室,并通过互联网博客文章和文章传播。p> 视图模型是ASP.NET MVC中的一种方式: 型号:
public class MyViewModel
{
public string SelectedValue { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
视图:
是的。有趣的是,我将新的Selectlist放入一个变量中,它甚至显示该项已被选中,但当页面加载时,它没有选择它。我同意您的看法,ViewData是一个瘟疫,我只使用此方法调试我的案例。如果我将以下内容放入视图中:new SelectListGenIDQueries.GetFeeders1、CircuitID、CircuitDescription、Model.Feeder SelectList会找到该项,并且该项对于Selected的属性为true,但是当页面加载时,该项不会被选中作为MVC2的新成员,我当然希望了解您对ViewData的看法。但是发布一个名为VisueData瘟疫的链接,链接到维基百科的一篇关于瘟疫的文章,会让你投下我的反对票,因为这是非常错误的。如果你认为应该避免使用ViewData,请说明原因,或者发布一个真实的引用-如果你这样做,我会将拒绝改为向上。
<%= Html.DropDownListFor(m => m.CircuitID, Model.Items, "") %>
<%= Html.ValidationMessageFor(m => m.CircuitID) %>