如何通过MVC 5中的htmlAttribute设置选择字段的值?

时间:2014-08-17 18:40:46

标签: asp.net-mvc actionlink html.actionlink

我有一个ActionLink定义如下:

@Html.ActionLink("Write a review", "Create", "Reviews")

重点是,当它重定向到评论控制器的“创建”视图时,会有一个ID为BusinessID的选择字段。因此,我想在打开页面时将select字段的值设置为特定条目。让我们说我想要设定它的价值是毕加索。怎么样,我可以实现吗?有可能以某种方式使用htmlAttributes吗?

1 个答案:

答案 0 :(得分:0)

您可以在 ReviewsController 创建操作方法中接受所选项目的ID参数,然后使用对象routeValues 参数 @ Html.ActionLink()发送您想要设置为选中的特定ID。像这样:

@Html.ActionLink("Write a review", "Create", "Reviews", new {id = 1}, null); 

然后您的创建操作方法应接受此 ID (例如:

  public ActionResult Create(int id) 
  { 
      List<SelectListItem> items = new List<SelectListItem>(); //create <option> </option> items of DropDownList
      items.Add(new SelectListItem { Text = "da Vinci", Value = "0", Selected = (id == 0)});
      items.Add(new SelectListItem { Text = "Picasso", Value = "1", Selected = (id == 1)});
      items.Add(new SelectListItem { Text = "van Gogh", Value = "2", Selected = (id == 2)});
      ViewBag.Painters = items;
      return View();
   }

呈现 Create.chtml 相应选择的项目:

@Html.DropDownList("Painters")

请注意,DropDownList参数("Painters")应与ViewBag.Painters同名。因此,在点击链接后,您将获得选定的项目给Picasso,因为Selected属性将为true,因为我们已在Create action方法中指定了该属性。

我认为可以有更聪明的方式来编写此下拉列表,但此操作方法可以正常工作。我鼓励您在以下链接上阅读有关@ Html.DropDownList帮助方法的更多信息:www.asp.netK.Scott Allen。希望你能找到这个有用的。