У меня 2 взгляда:
список.cshtml
<a href = "@Url.Action("Eliminar","Productos", new {id = @item.Id})" class = "btn btn-danger">Eliminar</a>
cuadricula.cshtml
<a href = "@Url.Action("Eliminar","Productos", new {id = @Model.Producto.Id})" class = "btn btn-danger" hidden = "@Model.Modificar" >
Eliminar Producto
</a>
У них одно и то же действие, но я хочу различать их внутри контроллера, потому что хочу вернуть разные return RedirectToAction();
Элиминар
public IActionResult Eliminar(int? id)
{
// .. rest of the code
if (you are coming from lista.chtml)
{
return RedirectToAction("return_1");
}
else if (you are coming from cradicula.cshtml)
{
return RedirectToAction("return_2");
}
//.. so on
}
Как я могу этого добиться? Единственное решение — создать еще один контроллер Eliminar
для каждого отдельного представления, но я бы нарушил DRY.
Просто добавьте второй параметр в метод Eliminar, который вы можете заполнить значением, указывающим, куда должно идти перенаправление.
например
public IActionResult Eliminar(int? id, string redirectTo)
и
<a href = "@Url.Action("Eliminar","Productos", new {id = @item.Id, redirectTo = "lista"})" class = "btn btn-danger">Eliminar</a>
Надеюсь, остальное очевидно.