c# - 如何返回 JSON 或 RedirectToAction?

标签 c# asp.net-mvc redirecttoaction jsonresult

我有一个操作方法,我想在一种情况下返回 JSON 或在另一种情况下重定向。我认为我可以通过从我的方法返回 ActionResult 来做到这一点,但这样做会导致错误“并非所有代码路径都返回一个值”

谁能告诉我我做错了什么?或者如何达到预期的效果?

下面是代码:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Login(User user)
    {
        var myErrors = new Dictionary<string, string>();
        try
            {


                if (ModelState.IsValid)
                {
                    if (userRepository.ValidUser(user))
                    {
                        RedirectToAction("Index", "Group");
                        //return Json("Valid");
                    }
                    else
                    {
                        return Json("Invalid");
                    }

                }
                else
                {
                    foreach (KeyValuePair<string, ModelState> keyValuePair in ViewData.ModelState)
                    {
                        if (keyValuePair.Value.Errors.Count > 0)
                        {
                            List<string> errors = new List<string>();

                            myErrors.Add(keyValuePair.Key, keyValuePair.Value.Errors[0].ErrorMessage);
                        }

                    }
                    return Json(myErrors);
                }
            }
            catch (Exception)
            {
                return Json("Invalid");
            }

        }

编辑:澄清一下,我已经尝试按照答案中的建议返回 RedirectToAction("Index", "Group"); 但它没有做任何事情。我重定向到的操作中的断点没有被击中。

最佳答案

你需要改变

RedirectToAction("Index", "Group"); 

return RedirectToAction("Index", "Group"); 

关于c# - 如何返回 JSON 或 RedirectToAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833086/

相关文章:

c# - Azure Web应用程序问题: System. Runtime.InteropServices.COMException 80040154类未注册

c# - 为采用 List 的 Html.EditorFor 指定模板名称

asp.net - 如何使用 ? : if statements with Razor and inline code blocks

asp.net-mvc-3 - 如何通过 RedirectToAction 传递类

ruby-on-rails - Redirect_to 从设计创建到模型创建 - 使用帮助程序 - 语法错误

c# - 如何确保 Task.Delay 更准确?

c# - Entity Framework 6 + Oracle如何查询两个结构相同的表

C# 最快的 2 组排序值联合

asp.net-mvc - ASP.NET MVC : redirect to action using URI

asp.net - RedirectToAction MVC2 的问题 - 无法将类型 'System.Web.Mvc.RedirectToRouteResult' 隐式转换为 'System.Web.Mvc.ViewResult'