我想知道在弹出窗口加载局部视图时是否可能重定向到错误页面。我在API的部分视图中显示了一些数据。
我的js代码
@section Scripts {
<script>
$(document).ready(function () {
$.ajaxSetup({ cache: false });
$("a[data-modal]").on("click", function (e) {
$('#myModalContent').load(this.href, function () {
$('#myModal').modal({
keyboard: true
}, 'show');
});
return false;
});
});
</script>
}
现在它会在弹出窗口中显示错误页面。它应该被重定向到另一个页面。
修改
错误捕获的实现
Webconfig
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="403" path="/Error/Index/403" responseMode="ExecuteURL"/>
<error statusCode="404" path="/Error/Index/404" responseMode="ExecuteURL"/>
<error statusCode="500" path="/Error/Index/500" responseMode="ExecuteURL"/>
</httpErrors>
错误控制器
public ActionResult Index(int id = 500)
{
var model = new ErrorPageViewModel();
model.ErrorCode = id;
switch (id)
{
case 403:
case 404:
model.ErrorHeader = "Page not Found!";
break;
default:
model.ErrorHeader = "Oops, something went wrong!";
break;
}
return View(model);
}
答案 0 :(得分:0)
.load()
函数回调可以使用其他参数,这些参数可以让您知道请求是否成功并采取相应的行动:
$('#myModalContent').load(this.href, function (response, status, xhr) {
if (status == 'error') {
// oops some error occurred => redirect the user to your error page
window.location.href = '/error500';
} else {
$('#myModal').modal({
keyboard: true
}, 'show');
}
});