Cannot implicitly convert type 'System.Web.Mvc.RedirectT
本文关键字:System Web Mvc RedirectT implicitly convert type Cannot | 更新日期: 2023-09-27 18:06:15
如何从JsonResult重定向到ActionResult,但我得到错误。我的错误是"不能隐式转换类型"System.Web.Mvc。重定向ttorouterresult '到'System.Web.Mvc.JsonResult'"。我的代码
Json结果: public JsonResult AddTruckExpensesTransactionChild(string totaldays, string amount)
{
string Mess = objActive.Save();
if (Mess == "1")
{
return RedirectToAction("GetTruckExpensesChild", new { id="", sid="" });
}
return Json(Mess, JsonRequestBehavior.AllowGet);
}
ActionResult:
public ActionResult GetTruckExpensesChild(string id, string sid)
{
TruckExpensesTransactionClass Transaction = new TruckExpensesTransactionClass();
if (sid != null)
{
Transaction.TransactionChild = objActive.ShowTransactionChild(id, sid);
return View(Transaction);
}
else
{
return View(Transaction);
}
}
您需要使用基类ActionResult以便您可以返回View、JSON、Content或Partial View:
public ActionResult AddTruckExpensesTransactionChild(string totaldays, string amount)
{
string Mess = objActive.Save();
if (Mess == "1")
return Json(new { Url = Url.Action("GetTruckExpensesChild", new { id = "", sid = "" }) });
return Json(Mess, JsonRequestBehavior.AllowGet);
}
但是如果你通过ajax调用这个动作,你必须通过javascript重定向到那个动作,因为返回RedirectToAction
将返回html作为ajax的响应,而不是重定向。
所以你需要通过json返回带有一些标志的action url,并检查如果response有那个标志,通过jquery重定向到那个url。
在Ajax调用成功检查它的url:
success: function(result) {
if(result.Url.length > 0)
{
window.location.href=result.Url;
}
JsonResult
类实现了ActionResult
类。只需将JsonResult
更改为ActionResult
作为操作方法的返回类型:
public ActionResult AddTruckExpensesTransactionChild(string totaldays, string amount)
{
string Mess = objActive.Save();
if (Mess == "1")
{
return RedirectToAction("GetTruckExpensesChild", new { id="", sid="" });
}
return Json(Mess, JsonRequestBehavior.AllowGet);
}