Tôi có một Phương thức hành động mà tôi muốn trả lại JSON từ một điều kiện hoặc chuyển hướng trên một điều kiện khác. Tôi nghĩ rằng tôi có thể làm điều này bằng cách trả lại ActionResult từ phương pháp của tôi nhưng làm điều này gây ra lỗi "không phải tất cả các đường dẫn mã trả về một giá trị"Làm cách nào để trả về JSON hoặc RedirectToAction?
Bất cứ ai có thể cho tôi biết tôi đang làm gì sai? Hoặc làm thế nào để đạt được kết quả mong muốn?
Dưới đây là đoạn code dưới đây:
[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: để làm rõ, tôi đã cố gắng để return RedirectToAction("Index", "Group");
như đề xuất trong các câu trả lời nhưng nó không làm gì cả. Điểm ngắt trong hành động mà tôi đang chuyển hướng để không bị truy cập.
Hi Daniel, tôi đã cố gắng này, nhưng nó dường như không làm gì cả. Tôi đặt một breakpoint vào hành động tôi đang chuyển hướng đến nhưng điều đó không bị ảnh hưởng. Tôi đã cập nhật câu hỏi với điều này. Cảm ơn – DaveDev
Đây có phải là phương thức hành động chỉ chấp nhận Bài đăng và bạn đang cố gắng chuyển hướng đến một hành động chỉ chấp nhận Nhận? Tôi đã bị vấp ngã trước đó rồi. Kindness, Dan –