You can accept id parameter of your selected item in your Create action method of ReviewsController, and then use object routeValues parameter of @Html.ActionLink() to send particular id you want to be set as selected. Something like this:
@Html.ActionLink("Write a review", "Create", "Reviews", new {id = 1}, null);
then your Create action method should accept this id (e.g:
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();
}
which renders Create.chtml accordingly selected item:
@Html.DropDownList("Painters")
Note that DropDownList
parameter("Painters")
should have the same name as a ViewBag.Painters
. As a result after clicking a link you will get selected item to Picasso, because it is Selected
attribute will be true, as we have assigned it in Create action method.
I think there could be smarter way to write this dropdownlist, but this action method works fine. I encourage you to read more about @Html.DropDownList helper method on the following links: www.asp.net and K.Scott Allen. Hope you can find this helpful.