【问题标题】:Redirecting from cshtml page从cshtml页面重定向
【发布时间】:2013-07-13 06:54:21
【问题描述】:

我想根据数据集的结果重定向到不同的视图,但我不断返回到我当前所在的页面,但不知道为什么。我进入 if 语句,该操作被调用,但是一旦我将视图返回到新页面,它就会将我返回到当前页面。

CSHTML 页面

@{
ViewBag.Title = "Search Results";
EnumerableRowCollection<DataRow> custs = ViewBag.Customers;

bool anyRows = custs.Any();
if(anyRows == false)
{


    Html.Action("NoResults","Home");


}
// redirect to no search results view

}

控制器

 public ActionResult NoResults()
    {
       return View("NoResults");

    }

我也看不懂..

@{
ViewBag.Title = "NoResults";
 }

<h2>NoResults</h2>

【问题讨论】:

  • 为什么不能从控制器重定向到另一个动作?

标签: c# asp.net-mvc-4 razor


【解决方案1】:

您可以转到同一控制器的方法..使用此行,如果您想将一些参数传递给该操作,可以通过在内部编写 (new {}).. 注意:- 您可以根据需要添加任意数量的参数。

@Html.ActionLink("MethodName", new { parameter = Model.parameter })

【讨论】:

    【解决方案2】:

    这显然是视图中控制器逻辑的不良情况。最好在控制器中执行此操作并返回所需的视图。

    [ChildActionOnly]
    public ActionResult Results() 
    {
        EnumerableRowCollection<DataRow> custs = ViewBag.Customers;
        bool anyRows = custs.Any();
    
        if(anyRows == false)
        {
            return View("NoResults");
        }
        else
        {
            return View("OtherView");
        }
    }
    

    将 NoResults.cshtml 修改为 Partial。

    并将其称为父视图中的部分视图

    @Html.Partial("Results")
    

    由于此处解释的原因,您可能必须将 Customer 集合作为模型传递给 Result 操作或 ViewDataDictionary:Can't access ViewBag in a partial view in ASP.NET MVC3

    ChildActionOnly 属性将确保您无法通过导航访问此页面,并且此视图必须呈现为部分视图,因此由父视图呈现。 cfr:Using ChildActionOnly in MVC

    【讨论】:

      【解决方案3】:

      改成这样:

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

      【讨论】:

      • 我为什么要返回行动.. 我想返回视图
      【解决方案4】:

      这样做会更安全。

      @{ Response.Redirect("~/Account/LogIn?returnUrl=Products");}

      因此,该操作的控制器也会运行,以填充视图所需的任何模型。

      来源
      Redirect from a view to another view

      尽管正如@Satpal 提到的,我还是建议您在控制器上进行重定向。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-10
        • 2014-08-03
        • 1970-01-01
        • 2011-07-21
        • 2011-01-06
        • 2017-02-12
        • 2013-05-27
        相关资源
        最近更新 更多