У меня есть типичное действие Create, которое было сгенерировано с помощью строительных лесов в MVC 4. Ничего особенного. Обычно я попадаю на эту страницу по следующему URL-адресу /RecipeLines/Create
, и когда я создаю эту конкретную запись, у меня есть раскрывающийся список, который я изменил, чтобы получить идентификатор рецепта при отправке:
<div class="editor-label">
@Html.LabelFor(model => model.RecipeID, "Recipe")
</div>
<div class="editor-field">
@Html.DropDownList("RecipeID", (SelectList)ViewBag.RecipeID, string.Empty)
@Html.ValidationMessageFor(model => model.RecipeID)
</div>
Я хотел бы сделать ссылку на страницу создания, передав идентификатор рецепта, который будет выглядеть примерно так:
/RecipeLines/Create/2
Я отредактировал @Html.DropDownList
, чтобы либо принять параметр, и НАДЕЮСЬ выбрать правильный RecipeID, либо если он связан без строки запроса
/RecipeLines/Create
тогда у него не было бы выбранного значения.
Вот мой Create Action как есть.
// GET: /RecipeLines/Create
public ActionResult Create(int? recipeID)
{
ViewBag.MeasurementID = new SelectList(db.Measurements, "MeasurementID", "MeasurementEn");
ViewBag.RecipeID = new SelectList(db.Recipes, "RecipeID", "RecipeNameEn", recipeID);
ViewBag.IngredientID = new SelectList(db.Ingredients, "IngredientID", "IngredientNameEn");
return View();
}
Мои 2 @Html.ActionLink(s) выглядят так:
//Coming from the Recipe Page
@Html.ActionLink("+", "Create", "RecipeLines", new { recipeID = recipe.RecipeID }, null);
//Coming from the RecipeLines/Index page
@Html.ActionLink("Create New", "Create")
THIS PROBLEM HAS BEEN SOLVED AND THE ABOVE CODE NOW WORKS
<option value=""></option>
в начале списка 10.12.2013