gpt4 book ai didi

c# - 如何根据输入在同一方法中返回 JsonResult 或 ActionResult?

转载 作者:行者123 更新时间:2023-11-30 16:03:53 25 4
gpt4 key购买 nike

我有一种情况需要返回 JSONResult 或重定向。可能吗?

例子:

public ActionResult Example(string code)
{
if(string.IsNullorEmpty(code))
return RedirectToAction("Index", "Home");
else
return Json(new { success = true, message= "Next step"});
}

最佳答案

是的,这是可能的。事实上,您发布的代码正是您的做法!

Controller.RedirectToAction返回 RedirectToRouteResult , Controller.Json返回 JsonResult .它们都继承自 ActionResult , 所以将它们作为 ActionResult 返回会工作得很好。


如果您使用的是 AJAX:

即使您没有说明您的调用上下文是什么,正如 insightful comment by Thiago Ferreira 所提到的那样, 重定向不适用于 AJAX。需要返回错误信息,然后在客户端处理。

例如你的操作方法:

public ActionResult Example(string code)
{
if(string.IsNullorEmpty(code))
{
UrlHelper urlHelper = new UrlHelper(HttpContext.Request.RequestContext);
string actionUrl = urlHelper.Action("Index", "Home");
return Json(new { success = false, message = "Code not provided", redirectTo = actionUrl});
}
else
{
return Json(new { success = true, message= "Next step"});
}
}

在客户端处理:

if(response.success) {
// yay
} else if(response.redirectTo) {
window.location.href = response.redirectTo;
}

关于c# - 如何根据输入在同一方法中返回 JsonResult 或 ActionResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36017452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com