Я не знаком с ASP.NET, но предполагаю, что Content(FeedBackMessages.NewsletterSuccess())
преобразует объекты в соответствующий HTTP-ответ, в данном конкретном случае, возможно, локализованный String
в ответ с Content-Type: text/plain
.
Мое предложение заключалось бы в том, чтобы обернуть сообщение об успешном завершении в объект результата, который содержит не только сообщение об успешном завершении или об ошибке, но и соответствующее состояние, например
class Result {
boolean success
String message
}
Предполагая, что Content()
преобразует объекты в JSON, вы можете вернуть Result
объект с помощью success=false
и оценить это в своем обработчике успеха jQuery. (Обновление: см. Ответ Мэтью Кокса, чтобы узнать, как создать объект результата JSON.)
$.post(this.action,
$(this).serialize(),
function (data) {
// Data transport went fine, now check the application logic result:
if (data.success) {
success(data.message);
} else {
failure(data.message);
}
}
);
Может быть, есть более простой, нативный подход ASP.NET, но этот в целом работает хорошо, и JSON хорошо поддерживается на стороне клиента JS.