У меня есть метод действий, который я хотел бы либо возвратить JSON из одного условия, либо перенаправить на другое условие. Я думал, что могу это сделать, возвращая ActionResult из моего метода, но это приводит к ошибке «не все пути кода возвращают значение»Как вернуть JSON или RedirectToAction?
Может ли кто-нибудь сказать мне, что я делаю неправильно? Или как достичь желаемого результата?
Вот код ниже:
[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");
}
}
Edit: уточнить, я уже пытался return RedirectToAction("Index", "Group");
, как предложено в ответах, но ничего не делает. Точка останова в действии, к которому я перенаправляюсь, не попадает.
Привет Даниэль, я попытался это, но это, кажется, не делать ничего. Я поставил точку останова в действие, к которому я перенаправляюсь, но это не попадает. Я обновил этот вопрос. Спасибо – DaveDev
Это метод действия, который принимает только сообщение, и вы пытаетесь перенаправить действие, которое принимает только Get? Раньше я был спокоен. Доброта, Дэн –