web-dev-qa-db-fra.com

Comment peut passer paramètre dans RedirectToAction?

Je travaille sur MVC asp.net.

Ceci est mon action de contrôleur:

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);
}

Je veux passer id à ingredientIndex action. Comment puis-je faire ceci?

Je veux utiliser cet identifiant public ActionResult ingrédient Edit (int id) qui provient d'une autre page. en fait je n'ai pas id en deuxième action, suggérez-moi ce que je devrais faire.

10
Pushpendra Kuntal
return RedirectToAction("IngredientIndex", new { id = id });

Mettre à jour

Tout d'abord, je renommerais IngredientIndex et IngredientEdit en index et en édition et les placerais dans IngredientsController, au lieu de AdminController, vous pouvez avoir un domaine nommé Admin si vous le souhaitez.

//
// 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)
}
26
Johan Olsson

Essayez de cette façon:

return RedirectToAction("IngredientIndex", new { id = productFormulation.id });
0
frennky

Pourquoi ne pas faire ça?

return RedirectToAction("ingredientIndex?Id=" + id);
0
daniel.herken