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