我有一个ActionLink定义如下:
@Html.ActionLink("Write a review", "Create", "Reviews")
重点是,当它重定向到评论控制器的“创建”视图时,会有一个ID为BusinessID的选择字段。因此,我想在打开页面时将select字段的值设置为特定条目。让我们说我想要设定它的价值是毕加索。怎么样,我可以实现吗?有可能以某种方式使用htmlAttributes吗?
答案 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.net和K.Scott Allen。希望你能找到这个有用的。