【问题标题】:Is there an equivalent to Response.Redirect("~/Controller/") in Asp.Net Core 2?Asp.Net Core 2 中是否有等效于 Response.Redirect("~/Controller/") 的方法?
【发布时间】:2018-06-16 21:15:02
【问题描述】:

Asp.Net Core 2 中是否有等同于 Response.Redirect("~/Controller/") 的内容?

我不想使用ViewComponent。而不是,我想从视图中调用控制器和操作方法。

@using Jahan.Blog.Web.Mvc.Models
@{
    ViewBag.Title = "Home Page";
}

<header>
    <h1> Blog </h1>
</header>
<div class="blog-description">
    <p>...</p>
</div>

@{ Response.Redirect("~/Article/");}

【问题讨论】:

    标签: asp.net asp.net-core asp.net-core-2.0 razor-pages


    【解决方案1】:

    如果在控制器方法中试试这个:

    RedirectToAction("yourActionName", "YourControllerName");
    

    或:

    Url.Action("YourActionName", "YourControllerName");
    

    这也可以与 AppStart -> RouteConfig.cs 文件中定义的参数一起使用

    i.e  
    routes.MapRoute(
              name: "Default",
              url: "{controller}/{action}/{id}",
              defaults: new { controller = "YourControllerName", action = "YourActionName", id = 
              UrlParameter.Optional }
          );
    

    传递参数只需为get方法添加新关键字

    Url.Action("YourActionName", "YourControllerName", new { id = id });
    

    用于发布方法

    Url.Action("YourActionName", "YourControllerName", new { "your variable" = id });
    

    【讨论】:

      【解决方案2】:

      您正在从视图重定向...ASP MVC Core 2Razor Pages 中的视图无法访问请求的上下文,因此它们无法重定向...

      【讨论】:

        【解决方案3】:

        您应该从您的操作中返回一个结果。

        视图不应该包含这样的逻辑;您应该将所有此类逻辑移至操作或过滤器。

        【讨论】:

          猜你喜欢
          • 2018-05-01
          • 2017-06-26
          • 1970-01-01
          • 2019-09-12
          • 2011-03-20
          • 1970-01-01
          • 1970-01-01
          • 2018-07-19
          • 2010-09-16
          相关资源
          最近更新 更多