我正在尝试在我的网站上实现一个管理员功能,该功能允许管理员通过输入用户名来模拟用户(以查看他们看到的内容)。
现在,我在 _Layout 主视图的 _LogOn 部分视图中将此设置作为 jQueryUi 对话框,因为这将在每个页面上。但是,由于一些我以前从未处理过的问题,我不确定此时该做什么。
1)我需要检查输入的用户名是否存在,如果不存在,它应该在对话框的表单中显示一条消息。
2)提交后我需要重新加载整个页面(因此显示的内容会因新用户更新而改变)。
3) 页面重新加载后,该框应再次打开。对话框表单提交后。
所以我不知道如何实现这一点,因为部分没有控制器,我也不知道如何根据提交是否来自该特定表单来重新出现 jquery 框,也不知道如何在部分不是时获取错误消息t 基于模型。然后我考虑制作表单 AJAX,但我也不知道该怎么做,因为最终必须重新加载整个页面才能更新显示。
除了默认代码之外,对 _LogOn 部分的补充:
if (SessionUtil.IsSiteAdmin)
{
<button id="impersonate" style="position: relative; right: 20px; float: left; top: -30px;">Impersonate</button>
<div id="impersonate-user" title="Admin User Impersonation">
@using (Html.BeginForm())
{
<p>Currently Impersonating:
@if (SessionUtil.User.Id != SessionUtil.UserAbsolute.Id)
{
<text>
@SessionUtil.User.FirstName @SessionUtil.User.LastName (@SessionUtil.User.NetId)
</text>
}
else
{
<text>None</text>
}
</p>
<p>@Html.ActionLink("Stop Impersonating", "StopImpersonating", "Shared", new { area = "", @class = "ui-button ui-widget ui-state-default ui-corner-all" })</p>
<div>
<div id="ValidationSummary">
@Html.ValidationSummary(true)
</div>
<fieldset>
<div class="editor-label">
@Html.Label("Username to Impersonate")
</div>
<div class="editor-field">
@Html.TextBox("Username")
</div>
<p>
<input type="submit" value="Impersonate"/>
</p>
</fieldset>
</div>
}
</div>
}
JS:
<script type="text/javascript">
$("#impersonate-user").dialog({
autoOpen: false,
modal: false,
width: 400,
height: 505,
closeOnEscape: true,
resizable: false,
draggable: true
});
$("#impersonate")
.button()
.click(function () {
$("#impersonate-user").dialog("open");
$('.ui-dialog :button, .ui-dialog a').blur();
});
</script>
有人可以告诉我该怎么做吗?谢谢。