От контроллера (сервер) не может показывать всплывающее окно. Что вы можете сделать, это вернуть представление ... с некоторым флагом, чтобы 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>
Для отображения Alert():
<script> alert(@ViewBag.MyErrorMessage);</script>
Чтобы отобразить Modal Dialog, вы можете использовать jQueryUI: http://jqueryui.com/dialog/ более или менее что-то вроде этого:
<div id="dialog" title="Error Registering">
<p>@ViewBag.MyErrorMessage</p>
</div>
<script>
$(function() {
$("#dialog").dialog();
});
</script>
Пожалуйста, покажите мне пример. – PaataPP
ОК, но расскажите мне немного больше о логике, которую вы пытаетесь выполнить ... Какова идея модального диалога? Что вы показываете в представлении? – Romias
Спасибо за ответы. Идея очень проста. У меня есть служба eMemberShip WCF, которые принимают ussername и пароль и возвращают роль пользователя и разрешения. Если имя пользователя или пароль не верны, возвращаемая служба возвращает строку Error, и я хочу показать ModalDialog с этой строкой ошибки, а не перенаправить на другую страницу. – PaataPP