执行动作时,每当发生异常时如何显示带有信息的div?
这是我到目前为止的内容:
<div id="dvErrorMsg">
<a href="#" class="close">[x]</a>
<p>
<label id="errorMessage">
</label>
</p>
</div>
<script type="text/javascript">
$(function () {
$("#click_here").click(function (event) {
event.preventDefault();
$("#dvErrorMsg").slideToggle();
});
$("#dvErrorMsg a").click(function (event) {
event.preventDefault();
$("#dvErrorMsg").slideUp();
});
});
</script>
我在控制器中执行了以下操作:
public ActionResult Validatecall()
{
//if any exeption happen show div with the custom error
}
如何捕获任何异常并将消息发送回AJAX响应中?
参考方案
在这种情况下,您可以尝试返回JavaScriptResult,这将告诉您的div扩展:
public ActionResult Validatecall()
{
ActionResult result;
try
{
// do whatever
}
catch (Exception)
{
result = JavaScript("$('#dvErrorMsg').show();$('#errorMessage').val(/* Put exception message here*/")");
}
return result;
}
通常,我不建议使用这种方式与视图进行交互,因为您现在如here所述将依赖项引入到视图本身的控制器中。我提供了它作为一种执行方法,因为我不确切知道您如何称呼此操作。
假设您正在使用ajax调用(如post)调用此操作,我将返回一个JsonResult来指示是否发生异常,并将错误消息传递回去:
$.post("urltoaction", function (result) {
if (result.success)
{
// do whatever
}
else
{
//exception occurred show errors
$('#dvErrorMsg').show();
$('#errorMessage').val(result.exceptionMsg);
}
});
现在是控制器代码:
public ActionResult Validatecall()
{
ActionResult result;
try
{
// do whatever
}
catch (Exception e)
{
result = new JsonResult()
{
Data = new { success = false, exceptionMsg = e.Message },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
return result;
}
Asp.net发送信息表单到页面 - c#我正在尝试使用弹出窗口中的新信息更新旧页面。到目前为止,我尝试过将结果保存在会话中Session["Data"] = DLvrijecampingplaatsen.SelectedItem; 然后当它达到Page_Load时,将其重新加载回旧页面if (Session["Data"] != null) { LBkies…
jQuery Ajax上传文件php即使没有内容也接收数组 - javascript它正在工作,但是在每次提交时,我什至都收到一个数组,甚至没有将文件添加到文件输入(多文件输入) postData = new FormData(this); $.ajax({ url: "/url", type: "POST", data: postData, cache: false, contentType: fa…
jQuery和Gridview更新面板不起作用 - c#我必须按照某些给定条件实现gridview的闪烁:gridview row blinking based on some conditions我能够成功实现它,但是随后我被要求在5秒钟内自动刷新gridview,为此我使用了ajax更新面板和计时器,但随后出现如下新的JavaScript错误:码: <form id="form1" …
如果数字是1或0,则显示不同的图标-ASP.NET C#MVC JQuery - javascript我有一个生成随机数的模型:public int IsLocked { get { var rnd = new Random(); return rnd.Next(0, 2); } } 这是我的局部视图:<table class="table table-striped table-hover dataTable admin-form them…
当多个用户在Gridview中选择同一行时,出现Java脚本弹出框 - c#我有很多行的gridview与第一行的SELECT链接。一次许多用户使用gridview。当两个用户同时单击同一行时,将向一个职员显示一个弹出框,表明一个项目是由另一个用户选择的。我下面有这个JavaScript代码,但没有显示弹出框。 protected void gvTypes_SelectedIndexChanged(object sender, Ev…