web-dev-qa-db-ja.com

ユーザーをコントローラーから別のビューMVCにリダイレクトする

コントローラーのメソッドから別のビューにユーザーをリダイレクトしようとしていますが、何をしても機能しません。私は何が間違っているのですか?これが私のコードです:

            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");

何もリダイレクトしていないようですが、何が原因ですか?

3
Jeff Mcbride

ビューにリダイレクトするのではなく、アクションまたはルートにリダイレクトします。私があなたが試みているパスを正しく解析している場合、あなたはこれを持っています:

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

する必要があります

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

これは、Admin領域のReportManagementControllerクラスに対するReportingアクションを想定しています。

10
Tieson T.

これを試してください、それはうまくいくはずです:

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

私はそれをテストしました!

3
praguan