请原谅我这个简单的问题,但我很难理解这个问题。我有一个包含以下内容的视图(.cshtml)(根据此示例):
<div id='dlgLogin'>
<h1>Log in</h1>
<table>
<tr>
<td>Username:</td>
<td>@Html.TextBox("username")</td>
</tr>
<tr>
<td>Password:</td>
<td>@Html.Password("password")</td>
</tr>
</table>
</div>
<script type="text/javascript">
$(function () {
$("#dlgLogin").dialog({
modal: true,
autoOpen: true,
resizable: false,
buttons: {
Login: function () {
// perform login
$.post("@Url.Action("Login", "Home")",
{
username: $('#username').val(),
password: $('#password').val()
},
function( data, status, xhr ) {
if(data.Success){
alert('great'); // do something
$('#dlgLogin').dialog("close");
$('#divLoginButton').load("@Url.Action("GetLoginButton", "Home")");
} else {
// do something else
}
});
},
Cancel: function () {
$(this).dialog("close");
}
}
});
});
</script>
基本上,无论何时打开,视图都会始终加载到 jQuery UI 对话框中,也就是说,视图本身负责将自己的内容放置在 jQuery UI 对话框中。我这样做是为了覆盖OnAuthorzation()
我的登录事件,并在用户需要登录时将其重定向到弹出窗口。我有 3 个问题:
1.当表单回传到服务器时,如何显示加载动画(.gif)?用这种方法?我知道如果我使用 anAjax.BeginForm
我可以指定一个UpdateTargetId
在回发期间用作加载动画的区域,但是我将如何使用这种方法实现这种效果?
2.我如何将success
事件附加和处理到上面的表单帖子?即当表单被回发到控制器的Login
动作时。Home
3.我已经看到至少 3 或 4 种不同的方法在 MVC 中显示对话框。这样做的正确方法是什么?我在上面发布的方法是否被认为是好的/mvc 友好的做法,如果不是你推荐什么?