将用户从控制器重定向到另一个视图MVC

时间:2016-05-06 20:21:34

标签: c# asp.net-mvc redirect controller actionresult

我试图将用户从控制器上的方法重定向到另一个视图,但无论我做什么,都无法让它工作。我究竟做错了什么?这是我的代码:

            public ActionResult SubmitReport(string JsonStringSend)
        {
            dynamic JSend = JObject.Parse(JsonStringSend);
            var schema = JsonSchema4.FromType<ReportItem>();
            var schemaData = schema.ToJson();
            var errors = schema.Validate(JSend.JsonString);
            schema = JsonSchema4.FromJson(schemaData);


            //Check for errors and show them if they exist
            if (errors.Count > 0)
            {
                //JSchema schema = JSchema.Parse(schema);
                foreach (var error in errors)
                    Console.WriteLine(error.Path + ": " + error.Kind);

                //JObject JsonString = JObject.Parse(JsonObj.JsonString.ToString());
                //JObject JsonStringSent = JObject.Parse(JsonStringSend);

            }
            else
            {
                return Redirect("/Admin/Reporting/ReportManagement");
            }
            return View();
        }

它永远不会重定向。我甚至试过这些:

Response.Redirect(Url.Action("/ReportManagement"));
RedirectToRoute(new { contoller = "ReportManagement", action = "Reporting" });
return RedirectToRoute(new { contoller = "Reporting", action = "ReportManagement" });
return RedirectToAction("ReportManagement");

似乎没有重定向,是什么给出了?

2 个答案:

答案 0 :(得分:11)

您没有重定向到视图,而是重定向到某个操作或路径。如果我正确地解析了您正在尝试的路径,那么您将拥有此路径:

return Redirect("/Admin/Reporting/ReportManagement")

应该是

return RedirectToAction("Reporting", "ReportManagement", new { area="Admin" }) 

这假定管理区域中 ReportManagementController 类的报告操作。

答案 1 :(得分:3)

试试这个,应该可以工作:

return RedirectToAction("yourAnotherActionName","yourAnotherControllerName"); //It's very simply;)

我已经测试过了!