3

我认为这应该是很好的记录,因为它似乎是一个非常常见的情况。不幸的是,我发现了很多相互冲突的信息,并且没有真正的共识,以正确的方式在MVC 3兼容的,不显眼的Ajax方式下进行。我当然可以一起破解“有效”的东西,但我宁愿按照它应该通过框架完成的方式。Ajax登录动态弹出对话框

这是我所需要的。我在网站的右上角有登录链接。该网站允许通过身份验证的用户和未经身份验证的用户。所以,我想在用户点击Login链接时有一个动态的ajax弹出窗口。

这应该走出去到控制器,并拉回HTML的登录对话框。然后它应该显示在一个jQuery UI弹出对话框中,当用户输入他们的信息时,它应该将它们重定向到“仪表板”页面(不管它们当前处于什么页面)。如果他们输入了错误的凭证,它应该保持在当前页面上,弹出对话框仍然打开并显示验证错误(“用户名或密码不正确”)。

换句话说,它必须扎入MVC 3不显眼的验证和不显眼的使用AJAX,并显示的东西在jQuery用户界面对话框。

这似乎是比我想象的要麻烦一些。任何指向这样的例子的指针?任何人都有他们可以分享的样本?

UPDATE:

的传统智慧是,如果你需要重定向,不让它阿贾克斯。但是,在这种情况下,Ajax是必需的,因为我需要验证信用状况并发布验证错误,而不会导致页面刷新,或重定向到不同的登录页面。我需要通过身份验证并在弹出对话框中发布错误。

回答

4

看一看的MVC 4 Developer Preview。他们已将登录和注册过程作为创建新应用程序时生成的骨架应用程序中的弹出对话框实施。在这个预览中有很多其他很酷的功能值得关注。这是弹出窗口对于登录的样子。它使用JQuery UI。

MVC 4 Developer Preview

+0

我还没有安装预览。我的猜测是,如果认证有问题,它会重定向到专用的登录页面。我不想那样。你知道他们的版本是否会这样吗? – 2012-01-31 23:00:28

+1

它不会重定向到MVC 4中的另一个页面。我已经更新了我的答案,以显示在MVC 4应用程序中登录弹出窗口的样子。它使用JQuery UI创建一个模态对话框。您可以使用主题滚轮或修改CSS以不同的主题。 – 2012-02-01 13:28:43

+0

只有登录链接在弹出窗口中显示登录。如果您在操作方法(如默认应用程序中的联系人)上放置Authorize属性,您将看到它重定向。 – 2012-02-19 02:54:23

0

约MVC 4登录预览的一点是,它可以在两种模式中使用。作为Ajax/jQuery弹出窗口或标准窗体。

它确实有一个bug。它不能正确处理取消。