Я открываю диалоговое окно jQuery, в этом окне я делаю сохранение / отмена.Чтобы сохранить, я вызываю свой контроллер, делаю некоторую проверку, сохраняю или выбрасываю исключение (MyPersonalException).Если есть исключение, я возвращаю другое представление (представление «MessageError») для отображения во всплывающем окне.Я просто хочу увидеть в модальном окне сообщение, доступное в «MyPersonalException»
Мои вопросы: 1. Это работает, но только с Firefox, а не с IE, а не с Chrome 2. Есть ли другой способ, потому что это похоже накод для простого воспроизведения сообщения.
Контроллер выглядит следующим образом:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveOrUpdate(Guid id, string firstName, string LastName)
{
try
{
Employee employee = new Employee() { Id = id, FirstName = firstName, LastName = LastName };
_employeeService.SaveOrUpdate(employee);
return Index();
}
catch (MyPersonalException ex)
{
_model.ErrorMessage = ex.Message;
return View("MessageError", _model);
}
catch (Exception ex)
{
_model.ErrorMessage = ex.Message;
return View("MessageError", _model);
}
}
Чтобы вызвать диалоговое окно, я использую этот код
jQuery (документ) .ready(function () {$ (function () {/ * var name = $ ("# firstName"), email = $ ("# lastName"), password = $ ("# isActive"), allFields = $ ([])) .add (имя) .add (электронная почта) .add (пароль), tips = $ ("# validateTips"); * /
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
modal: true,
buttons: {
Save: function() {
$.ajax({
type: "POST",
url: "/Employee/SaveOrUpdate",
data: {
id: getId(),
firstName: getFirstName(),
lastName: getLastName()
},
success: function(data) {
if (jqueryShowResult(data))
$("#DisplayError").html(data);
else {
employeeId = 0;
$(this).dialog('close');
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
})
},
Cancel: function() {
employeeId = 0;
$(this).dialog('close');
}
},
close: function() {
$("#gridEmpoyee").trigger("reloadGrid");
},
open: function() {
$.ajax({
type: "POST",
url: "/Employee/GetEmployee",
data: {
id: employeeId
},
success: function(data) {
$("#employeeDetail").html(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
})
}
});
});
});
jQueryShowResult
<script type="text/javascript">
jqueryShowResult = function(msg) {
var browser;
try //Internet Explorer
{
xmlDocTest = new ActiveXObject("Microsoft.XMLDOM");
browser = "IE";
}
catch (e) {
browser = "FF";
}
if (browser == "IE") {
try {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(msg);
var message = xmlDoc.getElementsByTagName("message")[0].childNodes[0].nodeValue;
var code = xmlDoc.getElementsByTagName("code")[0].childNodes[0].nodeValue;
return false;
}
catch (e) {
return true;
}
}
else {
var code = $(msg).find('code').text();
var message = $(msg).find('message').text();
if (code == "500") {
return false;
}
else {
return true;
}
}
};
</script>