Ho un metodo di azione che mi piacerebbe restituire JSON a una condizione o reindirizzare su un'altra condizione. Ho pensato che avrei potuto farlo restituendo ActionResult dal mio metodo, ma facendo questo si genera l'errore "non tutti i percorsi di codice restituiscono un valore"Come restituire JSON o RedirectToAction?
Qualcuno può dirmi cosa sto facendo male? O come ottenere il risultato desiderato?
Ecco il codice qui sotto:
[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: Per chiarire, ho già provato a return RedirectToAction("Index", "Group");
come suggerito nelle risposte, ma non fa nulla. Il punto di interruzione dell'azione a cui sto reindirizzando non viene colpito.
Ciao Daniele, ho provato questo, ma non sembra di fare nulla. Inserisco un breakpoint nell'azione a cui sto reindirizzando ma che non viene colpito. Ho aggiornato la domanda con questo. Grazie – DaveDev
Si tratta di un metodo di azione che accetta solo un post e si sta tentando di reindirizzare a un'azione che accetta solo Get? Sono stato inciampato da quello prima. Gentilezza, Dan –