Мое решение
Я сделал это. Вот как вы можете перенаправить на представление, которое вызвало действие.
Маяк предоставил хорошее решение для этого. Я просто добавил дополнительную информацию, чтобы сделать ее безопасной. Как он / она сказал,
во-первых, вы должны присвоить название всем представлениям .
И после этого вы должны передать Path и QueryString Через asp-route-returnUrl.
@{
ViewData["Title"] = "MyView";
}
<div>
<a asp-controller="Home" asp-action="MyAction" asp-route-returnUrl="@string.Format("{0}{1}",Context.Request.Path, Context.Request.QueryString)" >my link</a>
</div>
Затем в MyAction мы передаем returnUrl в качестве аргумента
public async Task<IActionResult>MyAction(string returnUrl)
{
if(everything is alright)
{
return LocalRedirect(returnUrl);
}
else
{
return false;
}
}
Существует так называемая атака открытого перенаправления
https://docs.microsoft.com/en-us/aspnet/core/security/preventing-open-redirects?view=aspnetcore-2.2
Когда ваше приложение получает данные из формы. Это небезопасно, и данные могут быть потенциально подделаны, чтобы перенаправить пользователей на внешний вредоносный URL-адрес. Таким образом, используя LocalRedirect, вы можете предотвратить атаки с открытым перенаправлением.