显示div以显示操作错误 - c#

执行动作时,每当发生异常时如何显示带有信息的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…