我試圖實現演示應用程序來學習ASP.NET MVC。應用程序有三個視圖和相應的動作,也有登錄功能。在JsonResult中設置RedirectUrl操作方法
查看:
- Index.cshtml - 包含人信息網格
- PersonInfoView.cshtml - 顯示人鑑於模式
- PersonInfoEdit.cshtml信息 - 允許用戶編輯個人信息
默認路線:
routes.MapRouteWithName(
"Default", // Route name
"", // URL with parameters
new { controller = "Person", action = "Index" } // Parameter defaults
);
對於個人檢視和編輯我創建了以下路線:
routes.MapRoute(
"ViewPerson", // Route name
"View/{PersonId}", // URL with parameters
new { controller = "Person", action = "PersonInfoView", PersonId= "" } // Parameter defaults
);
routes.MapRoute(
"EditPerson", // Route name
"{PersonId}", // URL with parameters
new { controller = "Person", action = "PersonInfoEdit", PersonId= "" } // Parameter defaults
);
所以,網址爲編輯的人是 「本地主機/ 1」 &的觀點 「本地主機/查看/ 1」
用戶可以查看或編輯個人信息。如果登錄用戶狀態,可以使用編輯選項(在索引中)。我在PersonInfoView.cshtml(如果用戶沒有登錄)中有登錄按鈕(它打開Jquery對話框),允許用戶在應用程序中登錄。
如果用戶通過PersonInfoView.cshtml頁面登錄到應用程序,我想將用戶重定向到編輯頁面。
登錄用戶動作返回JsonResult:
return Json(new { res = 1, RedirectUrl = "" }, JsonRequestBehavior.AllowGet);
我如何設置的redirectUrl等於人編輯視圖,如果用戶登錄通過PersonInfoView.cshtml應用。
謝謝。
感謝您的答覆。但在我的應用程序中,我想要的是如果用戶未登錄,那麼用戶將始終得到「localhost/view/1」。如果用戶已登錄,那麼可以從索引頁面中選擇查看或編輯選項。如果沒有登錄,那麼我想在PersonInfoView中顯示登錄按鈕以在應用程序中登錄。這裏登錄不會重定向到任何頁面,而是顯示爲彈出(用戶名和密碼)。如果用戶通過PersonInfoView.cshtml登錄到應用程序,我希望將用戶重定向到編輯頁面 –
如果您使用ajax登錄,則需要客戶端JavaScript,例如if(success)window.location = 「@url。Action(「PersonInfoEdit」,「Person」)「;' –
是否可以發佈到POST方法例如上面的PersonInfoEdit可以是post方法 – coder771