在 Web 服务中使用 try catch 块,并在 AngularJS 控制器中发送结果



>我正在创建一个 Web 应用程序,其中我使用 Web 服务更新记录,然后从 Web 服务中的另一种方法将电子邮件发送给特定人员

例如

我有两种方法

1 个用于更新

2 用于发送邮件

    public void updcomson(string Id, string upddate, string updcomname, string updbrandname, string updzone, string updlocation, string updstartime, string updendtime, string updprogram, string updvenue, string updvenuename, string pm, string pax)
    {
    //updating
    SendEmailsms();
    con.Close();
    var json = js.Serialize(message);
    Context.Response.Write("{" + '"' + "message" + '"' + ":" + json + "}");
    }

发送电子邮件();

此行调用第二种方法

在我的第二个方法中,我调用了一个存储过程,如下所示

   // automail store procedure email send dynamically
    SqlCommand cmd = new SqlCommand("sonvinmailsmssend", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@brandname", brandname.ToString());
    cmd.Parameters.AddWithValue("@zone", zone.ToString());
    cmd.Parameters.AddWithValue("@location", location.ToString());
    cmd.Parameters.AddWithValue("@property", property.ToString());
    SqlDataAdapter da = new SqlDataAdapter(cmd);

但是有时我的数据库中保存了多个具有相同名称的记录,因此我收到错误

子查询返回超过 1 个值

我只想在这里使用尝试捕获块

喜欢

try
{
       // automail store procedure email send dynamically
        SqlCommand cmd = new SqlCommand("sonvinmailsmssend", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@brandname", brandname.ToString());
        cmd.Parameters.AddWithValue("@zone", zone.ToString());
        cmd.Parameters.AddWithValue("@location", location.ToString());
        cmd.Parameters.AddWithValue("@property", property.ToString());
        SqlDataAdapter da = new SqlDataAdapter(cmd);
}
catch
{
//what i need to write here??
}

我需要在我的控制器中做什么?

$http.get('/csuv5.asmx/updcomson', {
            params: {
                //params
            }
        })
        .then(function (response) { 

我在这里需要做什么? });

服务:您需要将 updcomson 的返回类型更改为列表或字典

 public List<string> updcomson(string Id, string upddate, string updcomname, string updbrandname, string updzone, string updlocation, string updstartime, string updendtime, string updprogram, string updvenue, string updvenuename, string pm, string pax)
    {
    //updating
    string errMessage  = SendEmailsms();
    con.Close();
    var json = js.Serialize(message);
    Context.Response.Write("{" + '"' + "message" + '"' + ":" + json + "}");
        List<string> plist = new List<string>();
        plist.Add(errMessage); 
        return plist;
    }

SendEmailSMS() 的异常块,将返回类型从 void 更改为字符串

catch(Exception ex){
 // return the message you want to 
 return ex.Message;
}

棱角分明:像这样

$http.get('/csuv5.asmx/updcomson', {
            params: {
                //params
            }
        })
        .then(function (response) { 
$scope.returnMessage= response.data;     
//now you have your returned value in $scope.returnMessage, use it in alert or to show in a label as error
});
/////

/我的代码中的小例子/////

public class LoginController : ApiController
    {
        [HttpPost]
        [Route("api/Login/Authenticate")]
        public bool isAuthenticate(LoginVal val)
        {
            bool auth = false;
            using (HostingEnvironment.Impersonate())
            {
                PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
                if (ctx.ValidateCredentials (val.UserID, val.Password))
                {
                    auth = true;
                }
            }
            return auth;
        }
    }

角:

var LoginApp = angular.module('LoginApp',[]);
LoginApp.controller('LoginController', function ($scope, $http, $window) {
    $scope.LoginAuth = function ()
    {
        var dataToPost = {
            'UserID': $("#txtUserid").val(),
            'Password': $("#txtPassword").val()
        }
        var url = 'http://localhost:52212/api/Login/Authenticate';
        $http.post(url, dataToPost).then(function (response) {
            $scope.isAuth = response.data;
            if ($scope.isAuth) {
                //$window.location.href = 'Index.html';
                $window.location.href = 'customscripts/js/Index.html';
            }
            else
            {
                alert("Wrong Username/Password");
                //$window.location.href = 'Login.html';
                $window.location.href = 'customscripts/js/Login.html';
            }
        });
    }
});

您可以从控制器返回 IHttpActionResult:

//C# controller
//You also need to inherit your controller from ApiConroller 
// public class MyController : ApiConroller {//the code...}

  public void updcomson(string Id, string upddate, string updcomname, string updbrandname, string updzone, string updlocation, string updstartime, string updendtime, string updprogram, string updvenue, string updvenuename, string pm, string pax)
{
  try{
    //do work...
    return OK(myResult);
  }
  catch(){
   return NotFound();
  }
}

角度服务:

$http.get('/csuv5.asmx/updcomson', {
            params: {
                //params
            }
        })
        .then(function (response) { 
          // do something with the response
        },function(error){
          // handle error
         })

相关内容

最新更新