asp.net-mvc – MVC DropDownList SelectedValue不正确显示
发布时间:2020-05-23 18:47:03 所属栏目:asp.Net 来源:互联网
导读:我尝试搜索,没有找到任何解决问题的东西。我在Razor视图中有一个DropDownList,它不会显示在SelectList中标记为Selected的项目。这是填写列表的控制器代码: var statuses = new SelectList(db.OrderStatuses, ID, Name, order.Status.ID.ToString());ViewBa
|
我尝试搜索,没有找到任何解决问题的东西。我在Razor视图中有一个DropDownList,它不会显示在SelectList中标记为Selected的项目。这是填写列表的控制器代码: var statuses = new SelectList(db.OrderStatuses,"ID","Name",order.Status.ID.ToString()); ViewBag.Statuses = statuses; return View(vm); 这是查看代码: <div class="display-label"> Order Status</div> <div class="editor-field"> @Html.DropDownListFor(model => model.StatusID,(SelectList)ViewBag.Statuses) @Html.ValidationMessageFor(model => model.StatusID) </div> 我走过它,即使在视图中它具有正确的SelectedValue,但是DDL始终显示列表中的第一个项目,而不管选择的值如何。任何人都可以指出我做错了什么来让DDL默认为SelectValue? 解决方法SelectList构造函数(希望能够传递所选值id)的最后一个参数被忽略,因为DropDownListFor Helper使用您作为第一个参数传递的lambda表达式,并使用特定属性的值。所以这是丑陋的方法: 模型: public class MyModel
{
public int StatusID { get; set; }
}
控制器: public class HomeController : Controller
{
public ActionResult Index()
{
// TODO: obviously this comes from your DB,// but I hate showing code on SO that people are
// not able to compile and play with because it has
// gazzilion of external dependencies
var statuses = new SelectList(
new[]
{
new { ID = 1,Name = "status 1" },new { ID = 2,Name = "status 2" },new { ID = 3,Name = "status 3" },new { ID = 4,Name = "status 4" },},"Name"
);
ViewBag.Statuses = statuses;
var model = new MyModel();
model.StatusID = 3; // preselect the element with ID=3 in the list
return View(model);
}
}
视图: @model MyModel ... @Html.DropDownListFor(model => model.StatusID,(SelectList)ViewBag.Statuses) 这是正确的方式,使用真实的视图模型: 模型 public class MyModel
{
public int StatusID { get; set; }
public IEnumerable<SelectListItem> Statuses { get; set; }
}
控制器: public class HomeController : Controller
{
public ActionResult Index()
{
// TODO: obviously this comes from your DB,"Name"
);
var model = new MyModel();
model.Statuses = statuses;
model.StatusID = 3; // preselect the element with ID=3 in the list
return View(model);
}
}
视图: @model MyModel ... @Html.DropDownListFor(model => model.StatusID,Model.Statuses) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – 建立与SQL Server的连接时发生网
- asp.net-mvc – 是否可以使用RedirectToAction清
- .net – 为什么我的剃刀视图抱怨“}预计”升级到
- asp.net – ADO.NET实体数据模型缺少Visual Stud
- asp.net – 我应该在服务层或控制器层发送电子邮
- asp.net-mvc – ASP.NET MVC网格控件比较
- asp.net-mvc – ASP.NET MVC 3 – 你想看什么功能
- asp.net-core – 为什么我的JWT承载认证在令牌表
- 在Azure中设置ASP.NET 5 Web应用程序的SQL连接字
- 如何禁用Button asp.net
热点阅读
