C# 如何重定向到在.net core MVC中调用另一个操作的视图
我正在用ASP.NET Core 2.2 MVC开发一个项目。这里有一个名为MyView的视图,其中有一个链接调用MyActionactionC# 如何重定向到在.net core MVC中调用另一个操作的视图,c#,asp.net-mvc,asp.net-core-mvc,asp.net-core-2.0,C#,Asp.net Mvc,Asp.net Core Mvc,Asp.net Core 2.0,我正在用ASP.NET Core 2.2 MVC开发一个项目。这里有一个名为MyView的视图,其中有一个链接调用MyActionaction <div> <a asp-controller="Home" asp-action="MyAction">my link</a> </div> 我找到了这个。但我不想向目标操作添加任何内容。它在.NET Core中不起作用 您可以为每个页面使用标题或特定id。在视图中指定ViewData[“
<div>
<a asp-controller="Home" asp-action="MyAction">my link</a>
</div>
我找到了这个。但我不想向目标操作添加任何内容。它在.NET Core中不起作用
您可以为每个页面使用标题或特定id。在视图中指定ViewData[“Title”]后(或者可以在不指定标题的情况下为每个页面使用特定id)
您可以为每个页面使用标题或特定id。在视图中指定ViewData[“Title”]后(或者可以在不指定标题的情况下为每个页面使用特定id)
我的解决方案
我做到了。下面是如何重定向到调用操作的视图。
Mayak提供了一个很好的解决方案。我只是添加了一些额外的信息以确保安全。正如他/她所说,
首先,您应该为所有视图指定标题
然后,您应该通过asp路由返回URL传递路径和查询字符串
@{
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>
@{
ViewData[“Title”]=“MyView”;
}
当应用程序从表单接收数据时。它不安全,数据可能被篡改,从而将用户重定向到外部恶意URL。因此,通过使用LocalRedirect,您可以防止开放式重定向攻击。我的解决方案
我做到了。下面是如何重定向到调用操作的视图。
Mayak提供了一个很好的解决方案。我只是添加了一些额外的信息以确保安全。正如他/她所说,
首先,您应该为所有视图指定标题
然后,您应该通过asp路由返回URL传递路径和查询字符串
@{
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>
@{
ViewData[“Title”]=“MyView”;
}
当应用程序从表单接收数据时。它不安全,数据可能被篡改,从而将用户重定向到外部恶意URL。因此,通过使用LocalRedirect,您可以防止开放式重定向攻击。可能重复的
public async Task<IActionResult>MyAction(string returnUrl)
{
return View(returnUrl)
return RedirectToAction(returnUrl,"YourAction")
}
switch (returnUrl)
{
case"MyView":
.....
break;
case "YourView":
.....
break;
default:
...
break;
}
@{
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>
public async Task<IActionResult>MyAction(string returnUrl)
{
if(everything is alright)
{
return LocalRedirect(returnUrl);
}
else
{
return false;
}
}