0
我已经创建了正常的名为ApiController的asp mvc控制器来返回json
结果。在它的一个action方法中,我想返回json,然后重定向到另一个action方法。使用动作过滤器返回json,然后重定向到动作方法
返回JSON的API请求后,我一直在使用SignalR
我试着用Action filter
张贴通知,但它不是重定向到其它操作方法。
处理法1
[NotifyUserActionFilter]
public ActionResult NotifyUser(int ID)
{
return Json("true",JsonRequestBehavior.AllowGet);
}
处理法2
//the returning view has signalR javascript in it
public ActionResult ThankYou()
{
string Tempval = TempData["tempID"].ToString();
return View();
}
措施筛选
public class NotifyUserActionFilter : System.Web.Mvc.ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
var ID = filterContext.HttpContext.Request.Params["ID"];
filterContext.Controller.TempData.Add("tempID", ID);
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "controller", "Api" },
{ "action", "Thankyou" }
});
}
}
“NotifyUser”将被移动应用程序使用。其实我想返回json的结果,当“NotifyUser”将被调用,然后重定向到查看“ThankYou”,我正在运行signalR脚本 – Lishna
您需要在客户端(移动)应用程序中执行重定向。如果您使用NotifyUser的结果,那么您将重定向到新的视图“Thankyou”。 – KevDevMan