У меня есть частичное, что я обновляю через Ajax.ASP.NET MVC: Перенаправление ошибок с частичным на главный вид
Просмотр Javascript:
$("#SelectedId").change(function() {
var id = $("#SelectedId").val();
if (id > 0) {
$.ajax({
url: "/Home/Refresh",
data: { id: id },
type: "POST",
success: function (result) {
$('#partialHolder').html(result);
}
});
}
});
Refresh действие:
[HttpPost]
public ActionResult Refresh(int id)
{
HomeViewModel model = new HomeViewModel();
model.id = id;
ViewBag.id = model.id;
PrepareModel(ref model);
return PartialView("~/Views/PartialView.cshtml", model);
}
Это работает хорошо, за исключением того, что при возникновении ошибки (например, исключение HTTP), то представление об ошибке отправляется на частичное когда я хочу, чтобы он отображался как основной вид.
действие Ошибка:
public ActionResult Error(string message)
{
ViewBag.Message = message;
return View();
}
Я попытался с помощью Javascript (как в представлении и возвращенная контроллером) для перенаправления браузера, однако оба глючит и я предполагаю, что плохая практика.
Можете ли вы показать код обновления действия? – theLaw
См. Http://stackoverflow.com/questions/2261617/how-to-handle-model-state-errors-in-ajax-invoked-controller-action-that-returns – ScottE