blf*_*tes 0 javascript ajax asp.net-mvc jquery redirect
问题:
我想在成功时将部分视图加载到DIV中,但是如果发生错误,我需要重定向到视图主页.问题是重定向到操作也被加载到div中resultdisplay.如果出现错误,我应该如何管理错误处理以重定向到完整视图?
码:
Ajax调用:
function GetFilteredValuesCallback(values) {
var data = JSON.stringify(values);
var url = '/Controller/Action';
$.ajax({
type: 'GET',
url: url,
data: { filter: data },
success: function (result) {
$('#resultDisplay').html(result);
}
});
}
Run Code Online (Sandbox Code Playgroud)
行动:
public ActionResult Action(string filter)
{
MyModel model = null;
try
{
// Do stuff with my model ...
throw new Exception("ERROR!");
}
catch (Exception ex)
{
// In case of error redirect to home page
return RedirectToAction("Index");
}
return PartialView("_PartialView", model);
}
Run Code Online (Sandbox Code Playgroud)
好吧,不是在控制器中重定向,您只需将信息发送回客户端ajax请求并在此处理重定向,如下所示:
function GetFilteredValuesCallback(values) {
var data = JSON.stringify(values);
var url = '/Controller/Action';
$.ajax({
type: 'GET',
url: url,
data: { filter: data },
success: function (result) {
if(result.message==="Failed")
location.href = "yoururl"
else
$('#resultDisplay').html(result);
},
error:function(result)
{
//handle any errors
}
});
}
Run Code Online (Sandbox Code Playgroud)
调节器
public ActionResult Action(string filter)
{
MyModel model = null;
try
{
// Do stuff with my model ...
throw new Exception("ERROR!");
}
catch (Exception ex)
{
// In case of error
return Json(new{message="Failed"}, JsonRequestBehavior.AllowGet); //Send a message back
}
return PartialView("_PartialView", model);
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
感谢@StephenMuecke建议以更优雅的方式处理这个问题,可以通过以下方式完成:
JS
function GetFilteredValuesCallback(values) {
var data = JSON.stringify(values);
var url = '/Controller/Action';
$.ajax({
type: 'GET',
url: url,
data: { filter: data },
success: function (result) {
$('#resultDisplay').html(result);
},
error:function(result)
{
location.href("yoururl");
}
});
}
Run Code Online (Sandbox Code Playgroud)
调节器
public ActionResult Action(string filter)
{
MyModel model = null;
try
{
// Do stuff with my model ...
throw new Exception("ERROR!");
}
catch (Exception ex)
{
// In case of error
return new HttpStatusCodeResult(500);
}
return PartialView("_PartialView", model);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2588 次 |
| 最近记录: |