Как передать параметр в RedirectToAction?
Я работаю над MVC asp.net.
Это действие моего контроллера:
public ActionResult ingredientEdit(int id) {
ProductFormulation productFormulation = db.ProductFormulation.Single(m => m.ID == id);
return View(productFormulation);
}
//
// POST: /Admin/Edit/5
[HttpPost]
public ActionResult ingredientEdit(ProductFormulation productFormulation) {
productFormulation.CreatedBy = "Admin";
productFormulation.CreatedOn = DateTime.Now;
productFormulation.ModifiedBy = "Admin";
productFormulation.ModifiedOn = DateTime.Now;
productFormulation.IsDeleted = false;
productFormulation.UserIP = Request.ServerVariables["REMOTE_ADDR"];
if (ModelState.IsValid) {
db.ProductFormulation.Attach(productFormulation);
db.ObjectStateManager.ChangeObjectState(productFormulation, EntityState.Modified);
db.SaveChanges();
**return RedirectToAction("ingredientIndex");**
}
return View(productFormulation);
}
Я хочу передать id в действие ingredientIndex
. Как я могу это сделать?
Я хочу использовать этот id public ActionResult componentientEdit (int id), который поступает с другой страницы. на самом деле у меня нет id
во втором действии, пожалуйста, предложите мне, что мне делать.
Ответы
Ответ 1
return RedirectToAction("IngredientIndex", new { id = id });
Update
Сначала я бы переименовал IngredientIndex и IngredientEdit, чтобы просто индексировать и редактировать и поместить их в IngredientsController, вместо AdminController, вы можете иметь область с именем Admin, если хотите.
//
// GET: /Admin/Ingredients/Edit/5
public ActionResult Edit(int id)
{
// Pass content to view.
return View(yourObjectOrViewModel);
}
//
// POST: /Admin/Ingredients/Edit/5
[HttpPost]
public ActionResult Edit(int id, ProductFormulation productFormulation)
{
if(ModelState.IsValid()) {
// Do stuff here, like saving to database.
return RedirectToAction("Index", new { id = id });
}
// Not valid, show content again.
return View(yourObjectOrViewModel)
}
Ответ 2
Почему бы не сделать это?
return RedirectToAction("ingredientIndex?Id=" + id);
Ответ 3
Попробуйте следующим образом:
return RedirectToAction("IngredientIndex", new { id = productFormulation.id });