私はjson
の結果を返すApiControllerという名前の通常のasp mvcコントローラを作成しました。そのアクションメソッドの1つでは、jsonを返してから、別のアクションメソッドにリダイレクトします。アクションフィルタを使用してjsonを返し、次にアクションメソッドにリダイレクトします
APIリクエストにJSONを戻った後、私はAction filter
を使用してみましたSignalR
使用して通知を掲示しなければならないが、それは他のアクションメソッドにリダイレクトされていません。
処置方法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"はモバイルアプリで使用されます。実際には、 "NotifyUser"が呼び出され、signalRスクリプトを実行している "ThankYou"の表示にリダイレクトするときにjson結果を返すようにします。 – Lishna
クライアント(モバイル)アプリケーションでリダイレクトを行う必要があります。 NotifyUserの結果を消費する場所では、新しいビュー "Thankyou"にリダイレクトされます。 – KevDevMan