我有一个操作方法,我想在一个条件下返回 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");
}
}
编辑:澄清一下,我已经return RedirectToAction("Index", "Group");
按照答案中的建议尝试过,但它没有做任何事情。我重定向到的操作中的断点没有被命中。