從控制器(服務器)時,不能顯示一個彈出。 你可以做的是返回視圖...與一些標誌讓VIEW顯示一個JavaScript模式對話框。
其他選項是返回JSON而不是視圖...並使用JS創建模態對話框。 然後...在clic YES上,你可以用不同的參數調用相同的控制器動作(在你的情況下不同於'0'),這次顯示視圖。
例子:
[HttpPost]
public ActionResult Registering()
{
string RetResult = new UserPermission().ValidateUser(Request["username"].ToString(), Request["password"].ToString());
if (!string.IsNullOrEmpty(RetResult)){
ViewBag.MyErrorMessage = RetResult;
return View(); //This will show the view named "Registering", but you can display any other.
//The ideal is display the same one where the user entered the user/pass.
}
else {
return RedirectToAction("Index", "EvalMain");
}
}
在您的視圖:
@if(ViewBag.MyErrorMessage != null){
//Display the error message
//You can: display it in a div (without popup), you can show a javascript Alert(), or display a modal dialog.
}
要顯示它作爲一個DIV簡單地做:
<div>@ViewBag.MyErrorMessage </div>
時顯示一個警告():
<script> alert(@ViewBag.MyErrorMessage);</script>
要顯示一個模式對話框,您可以使用jQueryUI的:http://jqueryui.com/dialog/ 或多或少是這樣的:
<div id="dialog" title="Error Registering">
<p>@ViewBag.MyErrorMessage</p>
</div>
<script>
$(function() {
$("#dialog").dialog();
});
</script>
請給我看一些例子。 – PaataPP 2014-11-25 08:24:18
好的,但請告訴我更多關於您正試圖完成的邏輯......模態對話框的想法是什麼?你在視圖中顯示什麼? – Romias 2014-11-25 12:31:21
感謝您的回答。這個想法非常簡單。我已經運行eMemberShip WCF服務,它接受ussername和password並返回用戶角色和權限。如果用戶名或密碼不正確,服務返回錯誤字符串,並且我想用此錯誤字符串顯示ModalDialog,而不是重定向到其他頁面。 – PaataPP 2014-11-25 13:09:31