来自后端的警报

时间:2018-07-06 06:35:32

标签: c# ajax webforms

这是一个WebMethod,它从lvl字符串的前端获取值。 稍后,如果数据库中已经存在该值,则通过getDuplicate过程检查该字符串。如果该值存在,则插入过程InsertObject不会被激活,并且如果数据库中没有该值,则第一个过程将返回null,并且插入过程将起作用。

如果插入成功或失败,我需要的所有代码中的所有功能都是从C#部分发出的某种警报消息。 我尝试了很多示例,但找不到任何解决方案:/ 有人可以帮忙吗?

[WebMethod(EnableSession = true)]
public static void GetCollection(string lvl)
{

    string conn = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString;
    using (SqlConnection connection = new SqlConnection(conn))

    try
    {
        connection.Open();
        SqlCommand cmdCount = new SqlCommand("getDuplicate", connection);
        cmdCount.CommandType = CommandType.StoredProcedure;
        cmdCount.Parameters.AddWithValue("@ObjekatName", lvl);
        var count = (string)cmdCount.ExecuteScalar();

        if (count == null)
        {
            SqlCommand cmdProc = new SqlCommand("InsertObjekat", connection);
            cmdProc.CommandType = CommandType.StoredProcedure;
            cmdProc.Parameters.AddWithValue("@ObjekatName", lvl);                   
            cmdProc.ExecuteNonQuery();
            //successful alert
        }
        else
        {
          //fail alert
        }
    }
    catch 
    {

    }
    finally
    {
        connection.Close();
    }
    return;
}

更新: 将值发送到方法的Ajax:

$(function () {

     $('#myButton').on('click', function () {

         var lvl = $('#MainContent_txtProductConstruction').val()

         $.ajax({
             type: "POST",
             url: "NewProductConstruction.aspx/GetCollection",

             data: JSON.stringify({'lvl': lvl }),

             contentType: "application/json; charset=utf-8",
             dataType: "json",

             success: function (response) {
                 alert("Saved successfully.");
                 console.log(response);
                 location.reload(true);

             },
             error: function (response) {
                 alert("Not Saved!");
                 console.log(response);
                 location.reload(true);
             }
         });

     });

 });

1 个答案:

答案 0 :(得分:1)

您可以返回一个json对象。将方法的返回类型更改为字符串。包括using Newtonsoft.Json;,然后在要返回时,创建一个像这样的对象:

[WebMethod]
public static string GetCollection(string lvl)
{
   bool isInserted = false;
   // set the value of isInserted
   // you can send code a numeric value or bool value according to your need
   var result = new {code = isInserted, message = isInserted ? "Succesfully inserted" : "Already Exists"};
   return JsonConvert.SerializeObject(result);
}

在客户端,检查响应

success: function (response) {
          console.log(response);
          if(response != null){
            var data = $.parseJSON(response)
            alert(data.message)
          }
          location.reload(true);
         }