В зависимости от вашей логики вы можете управлять потоком приложений, используя jQuery.ajax()
для обработки ошибок.
// this will render the GET request on page load
$(function() {
$.ajax({
url: '/Some/PartialViewAction',
type: 'GET',
dataType: 'json', /*edit*/
success: function(xhr_data) { /*edit*/
// the following assumes you wrap
// your partial view in div id="myDiv"
$('#myDiv').html(xhr_data.html); /*edit*/
$('#myErrorDiv').html(xhr_data.error); /*edit*/
},
error: function() {
window.location.href='/Some/Error';
// or similar page redirecting technique
}
});
});
Это обработает ошибку в GET, но, конечно, если бы вы возвращали какой-то JSON или какой-либо другой индикатор в вашем методе действия, вы могли бы использовать тот же window.location.href...
в функции обратного вызова success
.
Редактировать
Также см. Выше правки $.ajax
Ваш контроллер может сделать что-то вроде этого:
public ActionResult PartialViewAction() {
// handle error
string message = "Evacuate, Immediately!";
// not certain the html will render correctly,
// but you could encode/parse/whatever easily enough
return Json(new { html = "<div>some html</div>", error = message },
JsonRequestBehavior.AllowGet);
}