Как передать параметр в RedirectToAction? - PullRequest
10 голосов
/ 30 июня 2011

Я работаю над 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);
}

Я хочу передать идентификатор действию ingredientIndex. Как я могу это сделать?

Я хочу использовать этот идентификатор public ActionResult componentEdit (int id) , который поступает с другой страницы. на самом деле у меня нет id во втором действии, пожалуйста, предложите мне, что мне делать.

Ответы [ 3 ]

26 голосов
/ 30 июня 2011
return RedirectToAction("IngredientIndex", new { id = id });

Обновление

Сначала я бы переименовал 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)
}
0 голосов
/ 30 июня 2011

Попробуйте так:

return RedirectToAction("IngredientIndex", new { id = productFormulation.id });
0 голосов
/ 30 июня 2011

Почему бы не сделать это?

return RedirectToAction("ingredientIndex?Id=" + id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...