![](/img/trans.png)
[英]correct approach with SignalR Hub and Controller class in ASP.NET MVC
[英]ASP .NET MVC Core + SignalR: Redirecting from a Hub to a Controller
是否可以將用戶從 SignalR 核心集線器重定向到我的應用程序中的任何其他位置?
我嘗試使用GetHttpContext
然后調用Response.Redirect
,但我收到一個異常,通知Response
已經啟動。
我在我的應用程序中使用 MVC 來獲得一個簡單的 controller 用於路由和使用基於 MVC cookie 的身份驗證。 然后在成功驗證后,我的 Controller 將用戶重定向到由 SignalR 集線器管理的位置。 但是,我注意到在某些情況下,我需要根據 Hub 中的信息將用戶返回到登錄頁面。
這是否有意義,或者我在設計我的應用程序時犯了一個錯誤,現在需要重新設計它?
正如@Wiktor Zychla 所說,我們應該在客戶端做這些事情,因為服務器集線器的方法無法重定向客戶端。 您只能在服務器上編寫方法,然后使用客戶端js進行重定向。
更多細節,您可以參考以下代碼:
public async Task RedirectPage(string user) {
// You could send it to a specific user
await Clients.All.SendAsync("RedirectPageClient", "home/index");
}
JS代碼:
connection.on("RedirectPageClient",function(url){
console.log(url);
window.location.href = url;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.