Ryd*_*der 0 asp.net-mvc jquery c#-4.0
我在mvc中使用更改事件到文本框一切正常但我无法在视图中处理控制器的异常抛出.
**VIEW:**
$("#txtToloc").change( function (event) {
var toloc= $('#txtToloc').val();
var mn = <%= new JavaScriptSerializer().Serialize(ViewData["MODELNUMBER"])%>;
var fm = <%= new JavaScriptSerializer().Serialize(ViewData["lblocation"]) %>;
var it = <%= new JavaScriptSerializer().Serialize(ViewData["lbinvtype"])%>;
var whid = "14";
debugger;
$.ajax({
url: '<%: Url.Action("GetPartialGraph")%>',
data: { 'Tolocation' :mn, 'Frmlocation' :fm, 'moNo' :it, 'whid' : whid },
type: "post",
cache: false,
dataType: "html",
success: function(result) {
alert('yeap');
},
error: function(xhr, status, error) {
alert(‘loss’);
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
从视图我在控制器中调用动作方法.
**CONTROLLER.**
public ActionResult GetPartialGraph(string Tolocation, string Frmlocation, string moNo, string whid)
{
string isvalid = "0";
if (Frmlocation.ToUpper().Trim() == Tolocation.ToUpper().Trim())
{
}
else
{
try
{
ut.Setlocation(Tolocation,Frmlocation,moNo,whid);
}
catch (iDB2Exception ex)
{
/* in catch depending upon certain condition I want through diff exception */
return View(isvalid);
}
Everything works fine. But I am unable to bring exception back to view. To show proper message to client. From
error: function(xhr, status, error) {
alert(‘loss’);
}
Run Code Online (Sandbox Code Playgroud)
我将调用另一个函数,并根据返回我将向用户显示消息.我无法从控制器返回异常以显示在视图中.
您正在返回一个视图,因此该error
函数将永远不会被执行.您可以将状态代码设置为500并返回JSON结果:
catch (iDB2Exception ex)
{
Response.StatusCode = 500;
Response.TrySkipIisCustomErrors = true;
return Json(new { errorMessage = ex.Message }, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
然后在你的错误处理程序中只需读取此值:
error: function (xhr) {
if (xhr.getResponseHeader('Content-Type').indexOf('application/json') > -1) {
var json = $.parseJSON(xhr.responseText);
alert(json.errorMessage);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
698 次 |
最近记录: |