我想在我的網站上實現一個管理員功能,允許管理員通過輸入用戶名來模擬用戶(看他們看到了什麼)。MVC 3:在_Layout視圖中更改用戶jQueryUi對話框,如何處理?
現在我有這個設置的,因爲這在_layout主視圖_LogOn局部視圖jQueryUI的對話框將在每個頁面上。但是,由於我以前從未處理過一些問題,因此我不確定此時該怎麼做。
1)我需要運行一個檢查,看看如果輸入的用戶名是否存在,如果它不應該顯示在對話框的形式的消息。
2)我需要在提交後重新加載整個頁面(那麼什麼是正在顯示的變化,由於新的用戶更新)。
3)在頁面重新加載後,該框應該再次顯示爲打開狀態。提交對話框表單之後。
所以我不知道如何實現這一點,因爲partials沒有控制器,我也不知道如何使jquery框重新出現的基礎上,如果提交來自該特定的形式,也不知道如何獲得錯誤消息時部分不是基於模型。然後我考慮製作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>
有人能告訴我如何做到這一點?謝謝。
這就是我在想什麼,但這是我從來沒有在MVC中做過的事情,並且我不太熟悉AJAX,更別說與MVC交互了,希望得到一些代碼示例以獲得幫助。 – SventoryMang
增加了一些例子,讓你開始。祝你好運! – IronicMuffin