在我的_Layout.cshtml
我编写的javascript代码,允许我在页面上显示模式对话框,当我点击链接时,用户登录表单,这是有效的。我的问题是我想做类似的事情:
我点击ActionLink,它运行来自控制器的代码,即:
public ActionResult Create()
{
if (Session["UserID"] != null)
{
ViewBag.PlaceID = new SelectList(db.Places, "PlaceID", "Name");
ViewBag.UserID = new SelectList(db.Users, "UserID", "FullName");
return View();
}
else
{
return RedirectToAction("LogIn", "User");
}
}
任何人都有想法,如何更改return RedirectToAction("LogIn", "User");
代码,以便向我显示我的模态对话框而不是为登录打开新页面?
答案 0 :(得分:1)
你应该在javascript中处理点击。
你的点击应该打开模态窗口,这可能是你从控制器返回的部分内容..或者只是做一个show hide。已经登录页面了。但是如果你想,你可以在模态窗口的源代码中放置一个远程URL(这将是对你的控制器的调用)。
看看这个:
答案 1 :(得分:0)
控制器:
public ActionResult Login()
{
if(Request.IsAjaxRequest())
{
return PartialView();
}
return View(); //fallback for no-js
}
并在视图中:
Ajax.ActionLink("Login", "Login", "Accounts", null, new AjaxOptions { UpdateTargetId = "modal-login", OnComplete = "$('#modal-login').dialog('open');" })