For ASP.NET Çekirdek
Sen asp-route- * özelliğini kullanabilirsiniz:
<form asp-action="Login" asp-route-previous="@Model.ReturnUrl">
Diğer ayrıntılardaki örnek:
Eylemlere sahip bir Araç Kontrolörünüz olduğunu hayal edin
indeks
ayrıntılar
Düzenle
ve herhangi bir aracı Dizinden veya Ayrıntılar'dan düzenleyebilirsiniz, bu nedenle, dizinden düzenle'ye tıkladıysanız, düzenlemeden sonra dizine dönmelisiniz ve ayrıntılardan düzenlemeyi tıkladıysanız, düzenlemeden sonra ayrıntılara dönmelisiniz.
//In your viewmodel add the ReturnUrl Property
public class VehicleViewModel
{
..............
..............
public string ReturnUrl {get;set;}
}
Details.cshtml
<a asp-action="Edit" asp-route-previous="Details" asp-route-id="@Model.CarId">Edit</a>
Index.cshtml
<a asp-action="Edit" asp-route-previous="Index" asp-route-id="@item.CarId">Edit</a>
Edit.cshtml
<form asp-action="Edit" asp-route-previous="@Model.ReturnUrl" class="form-horizontal">
<div class="box-footer">
<a asp-action="@Model.ReturnUrl" class="btn btn-default">Back to List</a>
<button type="submit" value="Save" class="btn btn-warning pull-right">Save</button>
</div>
</form>
Denetleyicinizde:
// GET: Vehicle/Edit/5
public ActionResult Edit(int id,string previous)
{
var model = this.UnitOfWork.CarsRepository.GetAllByCarId(id).FirstOrDefault();
var viewModel = this.Mapper.Map<VehicleViewModel>(model);//if you using automapper
//or by this code if you are not use automapper
var viewModel = new VehicleViewModel();
if (!string.IsNullOrWhiteSpace(previous)
viewModel.ReturnUrl = previous;
else
viewModel.ReturnUrl = "Index";
return View(viewModel);
}
[HttpPost]
public IActionResult Edit(VehicleViewModel model, string previous)
{
if (!string.IsNullOrWhiteSpace(previous))
model.ReturnUrl = previous;
else
model.ReturnUrl = "Index";
.............
.............
return RedirectToAction(model.ReturnUrl);
}