从MVC3中的控制器打开jquery模式对话框

时间:2011-09-07 14:23:41

标签: c# jquery asp.net-mvc-3 jquery-ui

在我的_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");代码,以便向我显示我的模态对话框而不是为登录打开新页面?

2 个答案:

答案 0 :(得分:1)

你应该在javascript中处理点击。

你的点击应该打开模态窗口,这可能是你从控制器返回的部分内容..或者只是做一个show hide。已经登录页面了。但是如果你想,你可以在模态窗口的源代码中放置一个远程URL(这将是对你的控制器的调用)。

看看这个:

ASP.Net MVC jQuery Dialog Partial

答案 1 :(得分:0)

使用Ajax.ActionLink()

控制器:

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');" })