URL重定向到变量



我正在研究一种方法,它将适用于2种不同的视图"/DogProfile"one_answers"/DogProfile/Profile"我想调用这个方法,然后让它返回到当前页面,就像现在对"dogprofile"所做的那样。然而,我有麻烦确定如何创建一个变量,将存储我正在操作的页面的url。也就是说,现在如果我在Profile视图上运行页面,我将被重定向到"/DogProfile"页,而不是返回到"DogProfile/profile;页面。

Dog Profile Controller:

public IActionResult CheckOut(string activity, int dogID)
{
var status = context.Dogs.Find(dogID);
status.CheckedOut = true;
status.Activity = activity;
status.TimeCheckOut = DateTime.Now;
context.SaveChanges();
return Redirect("/dogprofile");
}

概要视图:

@model WebApplication2.Models.Dog;
<h1>@Model.DogName</h1>
<img src="@Model.ImageSource" class="dogProfile"><img />
<br />
<br /> 
@if (Model.Description != null)
{
<h2>Dog Special Requirements:</h2>
<p>@Model.Description</p>
}
<form asp-controller="DogProfile" asp-action="CheckOut" method="post">
<select name="activity" id="activity">
<option value="walk">Walk</option>
<option value="furlough">Furlough</option>
<option value="bathe">Bathe</option>
</select>
<br />
<input type="submit" value="Check Out" />
<input type="hidden" name="dogID" value="@Model.Id" />
</form>

如果您想通过Profile页面提交并返回到当前的"DogProfile/Profile"页面而不是"/DogProfile"页面,您可以尝试下面的代码:

[HttpPost]
public IActionResult CheckOut(string activity, int dogID)
{
var status = _context.Dogs.Find(dogID);
status.CheckedOut = true;
status.Activity = activity;
status.TimeCheckOut = DateTime.Now;
_context.SaveChanges();
return Redirect("/dogprofile/profile" + "/" + dogID);
}

最新更新