Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何重定向到在.net core MVC中调用另一个操作的视图_C#_Asp.net Mvc_Asp.net Core Mvc_Asp.net Core 2.0 - Fatal编程技术网

C# 如何重定向到在.net core MVC中调用另一个操作的视图

C# 如何重定向到在.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[“

我正在用ASP.NET Core 2.2 MVC开发一个项目。这里有一个名为MyView的视图,其中有一个链接调用MyActionaction

<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;
        }

    }