我希望创建一个登录灯箱/模态对话框到我的网站,该网站是建立与asp.net的MVC。 但是我能想到的唯一的办法就是链接到受限制的部分,当把逻辑入的onclick事件的超链接。 我宁愿它,所以我仍然可以使用Authrisation动作过滤器,当你点击一个链接到一个action方法上需要authrisation其过程使用到实际的链接之前会显示灯箱/模态对话框。 这样做的原因是我不想瓶坯不必remeber就摆在您的链接事件的宋衍涛任务。
实现这个,我能想到的唯一的办法就是从服务器大跳阿贾克斯推/彗星客户端显示在authrisation过滤箱控制器继续之前。 也有不执行的AJAX推动在asp.net的MVC /彗星那么多机制的文档。
有没有一种办法simplier?
Digg的登录窗口就是一个例子。
使用类装饰链接,如果你有一些做的,一些不这样做,当请求没有被授权要求登录的操作。 当有人点击需要授权一个链接,然后弹出的模态对话框。 这个对话框应该发布该链接的实际URL单击了设置为操作的参数RETURNURL您的登录操作。 如果登录失败,重定向到登录视图(追加RETURNURL到后动作登录表单)。
注:这是假设您正在使用jQuery UI的对话,但不使用对话框的按钮界面。 您可能需要在UI类添加到该按钮的自己,以获得正确的造型。 如果你不使用jQuery UI然后调整对话框代码与你的对话合作。
<% if (!Request.IsAuthenticated) { %>
$(function() {
$('#loginDialog').hide().dialog({
modal: true,
...
});
$('a.requires-login').click( function() {
returnUrl = $(this).attr('href');
$('#loginDialog').find('#returnUrl').val(returnUrl);
$('#loginDialog').dialog('open');
return false;
});
<% } %>
<% if (!Request.IsAuthenticated) { %>
<div id="loginDialog">
<% using (Html.BeginForm("Login","Account")) { %>
<%= Html.TextBox( "returnUrl", null, new { style = "display: none;" } ) %>
... rest of form ...
<% } %>
</div>
<% } %>