C#和ajax调用

C#和ajax调用,c#,jquery,ajax,C#,Jquery,Ajax,//Javascript函数 函数SaveAndUpdateProjectMaster(){ //C#WebMethod [WebMethod] public static string SaveAndUpdateProject(string Id,string CompanyCode, string ProjectName, string ProjectDescription, string ProjectType,string LocationSite, st

//Javascript函数

函数SaveAndUpdateProjectMaster(){

//C#WebMethod

        [WebMethod]
        public static string SaveAndUpdateProject(string Id,string CompanyCode, string ProjectName, string ProjectDescription, string ProjectType,string LocationSite, string Client, string Latitude, string Longitude, string Status, string FirstLevelApprover, string SecondLevelApprover,string ThirdLevelApprover,string userComment,string CrudType)
        //public static string SaveAndUpdateProject(string Id)
        {

            //string CompanyCode=string.Empty;
            //string ProjectName=string.Empty;
            //string ProjectDescription=string.Empty;
            //string ProjectType=string.Empty;
            //string LocationSite=string.Empty;
            //string Client=string.Empty;
            //string Latitude=string.Empty;
            //string Longitude=string.Empty;
            //string Status=string.Empty;
            //string FirstLevelApprover=string.Empty;
            //string SecondLevelApprover=string.Empty;
            //string ThirdLevelApprover=string.Empty;
            //string userComment=string.Empty;
            //string CrudType=string.Empty;


            string res = string.Empty;
            UserMsg obj = new UserMsg();
            try
            {

                String Result = string.Empty;
                BLL_ManageProject BLLProject = new BLL_ManageProject();
                //if (btnProjectsave.Text == "Add New")
                //{
                if (CrudType == "Add New")
                {
                    SqlParameter[] paramSaveProject = new SqlParameter[19];
                    paramSaveProject[0] = new SqlParameter("@CompanyCode", CompanyCode);
                    paramSaveProject[1] = new SqlParameter("@ProjectName", Convert.ToString(ProjectName));
                    paramSaveProject[2] = new SqlParameter("@ProjectDescription", Convert.ToString(ProjectDescription));
                    paramSaveProject[3] = new SqlParameter("@ProjectType", ProjectType);
                    paramSaveProject[4] = new SqlParameter("@LocationSite", Convert.ToString(LocationSite));
                    paramSaveProject[5] = new SqlParameter("@Client", Convert.ToString(Client));
                    paramSaveProject[6] = new SqlParameter("@Latitude", Convert.ToString(Latitude == "" ? "0.00" : Latitude));
                    paramSaveProject[7] = new SqlParameter("@Longitude", Convert.ToString(Longitude == "" ? "0.00" : Longitude));
                    paramSaveProject[8] = new SqlParameter("@IsActive", Convert.ToInt32(Status));
                    paramSaveProject[9] = new SqlParameter("@FirstLevelApprover", Convert.ToString(FirstLevelApprover));
                    paramSaveProject[10] = new SqlParameter("@SecondLevelApprover", Convert.ToString(SecondLevelApprover));
                    paramSaveProject[11] = new SqlParameter("@ThirdLevelApprover", Convert.ToString(ThirdLevelApprover));
                    paramSaveProject[12] = new SqlParameter("@PageName", HttpContext.Current.Request.Url.Segments.Last());
                    paramSaveProject[13] = new SqlParameter("@Title", "Insert Project Master");
                    paramSaveProject[14] = new SqlParameter("@UserComment", userComment);
                    paramSaveProject[15] = new SqlParameter("@SystemComment", "");
                    paramSaveProject[16] = new SqlParameter("@Revision", 0);
                    paramSaveProject[17] = new SqlParameter("@CreatedBy", (!string.IsNullOrEmpty(HttpContext.Current.Session["WindowsID"].ToString())) ? HttpContext.Current.Session["WindowsID"].ToString() : null);
                    paramSaveProject[18] = new SqlParameter("@CreatedDate", System.DateTime.Now);
                    Result = BLLProject.SaveProjectMaster(paramSaveProject);
                    if (Result == "1")
                    {

                        obj.Code = "1";
                        obj.Msg = GlobalConst.strInsertSuccess;
                    }
                    else if (Result == "2")
                    {

                        obj.Code = "2";
                        obj.Msg = GlobalConst.strRecordExists;
                    }
                    else
                    {

                        obj.Code = "0";
                        obj.Msg = GlobalConst.strInsertFaliure;
                    }
                }
                else if (CrudType == "Update")
                {
                    SqlParameter[] paramSaveProject = new SqlParameter[20];
                    paramSaveProject[0] = new SqlParameter("@CompanyCode",CompanyCode);
                    paramSaveProject[1] = new SqlParameter("@ProjectName", Convert.ToString(ProjectName));
                    paramSaveProject[2] = new SqlParameter("@ProjectDescription", Convert.ToString(ProjectDescription));
                    paramSaveProject[3] = new SqlParameter("@ProjectType", ProjectType);
                    paramSaveProject[4] = new SqlParameter("@LocationSite", Convert.ToString(LocationSite));
                    paramSaveProject[5] = new SqlParameter("@Client", Convert.ToString(Client));
                    paramSaveProject[6] = new SqlParameter("@Latitude", Convert.ToString(Latitude == "" ? "0.00" : Latitude));
                    paramSaveProject[7] = new SqlParameter("@Longitude", Convert.ToString(Longitude == "" ? "0.00" :Longitude));
                    paramSaveProject[8] = new SqlParameter("@IsActive", Convert.ToInt32(Status));
                    paramSaveProject[9] = new SqlParameter("@FirstLevelApprover", Convert.ToString(FirstLevelApprover));
                    paramSaveProject[10] = new SqlParameter("@SecondLevelApprover", Convert.ToString(SecondLevelApprover));
                    paramSaveProject[11] = new SqlParameter("@ThirdLevelApprover", Convert.ToString(ThirdLevelApprover));
                    paramSaveProject[12] = new SqlParameter("@ProjectId", Id);
                    paramSaveProject[13] = new SqlParameter("@PageName",HttpContext.Current.Request.Url.Segments.Last());
                    paramSaveProject[14] = new SqlParameter("@Title", "Update Project Master");
                    paramSaveProject[15] = new SqlParameter("@UserComment", userComment);
                    paramSaveProject[16] = new SqlParameter("@SystemComment", "");
                    paramSaveProject[17] = new SqlParameter("@Revision", 0);
                    paramSaveProject[18] = new SqlParameter("@CreatedBy", (!string.IsNullOrEmpty(HttpContext.Current.Session["WindowsID"].ToString())) ? HttpContext.Current.Session["WindowsID"].ToString() : null);
                    paramSaveProject[19] = new SqlParameter("@CreatedDate", System.DateTime.Now);
                    Result = BLLProject.UpdateProjectMaster(paramSaveProject);
                    if (Result == "1")
                    {
                        obj.Code = "1";
                        obj.Msg = GlobalConst.strUpdateSuccess;
                        //BindProjectGrid(ddlDivision.SelectedItem.Value, ddlCountryPrm.SelectedItem.Value, ddlCompanyPrm.SelectedItem.Value, ddlProjMaster.SelectedValue.ToString());
                        //ScriptManager.RegisterStartupScript(this, this.GetType(), "Popup", "ShowPopup('" + GlobalConst.strUpdateSuccess + "');", true);
                        //btnCancelProject_Click(sender, e);
                    }
                    else if (Result == "2")
                    {
                        obj.Code = "2";
                        obj.Msg = GlobalConst.strUpdateSuccess;
                        //ScriptManager.RegisterStartupScript(this, this.GetType(), "Popup", "ShowPopup('" + GlobalConst.strRecordExists + "');", true);
                        //btnCancelProject_Click(sender, e);
                    }
                    else
                    {
                        obj.Code = "0";
                        obj.Msg = GlobalConst.strUpdateFaliure;
                        //ScriptManager.RegisterStartupScript(this, this.GetType(), "Popup", "ShowPopup('" + GlobalConst.strUpdateFaliure + "');", true);
                        //btnCancelProject_Click(sender, e);
                    }
                }

            }
            catch (Exception ex)
            {
                var myActualType = typeof(ProjectMaster);
                //ScriptManager.RegisterStartupScript(this, this.GetType(), "Popup", "ShowPopup('" + GlobalConst.strErrorMessge + "');", true);
                SecurLog.ErrorLogInfoSave(DateTime.Now, Convert.ToString(HttpContext.Current.Session["WuserCode"]), ex.Source, myActualType.GetType().Name, System.Reflection.MethodBase.GetCurrentMethod().Name, "1", ex.Message, ex.StackTrace.Substring(ex.StackTrace.LastIndexOf(' ')), "1", HttpContext.Current.Request.Url.AbsoluteUri, "SECUR", Convert.ToString(HttpContext.Current.Session["ServiceCo"]));
                SecurLog.SendErrorMail(DateTime.Now, Convert.ToString(HttpContext.Current.Session["WuserCode"]), ex.Source, myActualType.GetType().Name, System.Reflection.MethodBase.GetCurrentMethod().Name, "1", ex.Message, ex.StackTrace.Substring(ex.StackTrace.LastIndexOf(' ')), "1", HttpContext.Current.Request.Url.AbsoluteUri, "SECUR", Convert.ToString(HttpContext.Current.Session["ServiceCo"]));
                obj.Code = "0";
                obj.Msg = ex.Message;
            }

            return JsonConvert.SerializeObject(obj);
        }
在上面的代码中,一个提到的javascript函数和C#webmethod的ajax调用不起作用,没有显示任何错误,也没有达到断点。请帮助我,提前感谢

但是上面的代码使用了5个参数,但不起作用,并且没有显示将超过10个参数传递给ajax调用的任何错误

请帮帮我。。。。。。。。。。
提前感谢

您能为查询字符串参数添加模型吗

public class ProjectModel
    {
        public int Id { get; set; }
        public string CompanyCode { get; set; }
        public string ProjectName { get; set; }
        public string ProjectDescription { get; set; }
        public string ProjectType { get; set; }
        public string LocationSite { get; set; }
        public string Client { get; set; }
        public string Latitude { get; set; }
        public string Longitude { get; set; }
        public string Status { get; set; }
        public string FirstLevelApprover { get; set; }
        public string SecondLevelApprover { get; set; }
        public string ThirdLevelApprover { get; set; }
        public string userComment { get; set; }
        public string CrudType { get; set; }
    }
动作法中的传递模型

[WebMethod]
public static string SaveAndUpdateProject(ProjectModel model)
{
// your business logic
// you can access model properties by model.Id, model.CompanyCode
}
另外,在ajax方法中,您需要更改obj对象

var model= new Object();  
model.Id = $('#HdxtProjectId').val();
model.CompanyCode = $('#ddlCompanyPrm').val();
model.ProjectName = $('#txtProjectnamePrm').val();
// rest of the properties
在Ajax方法中,将数据更新为:

data: JSON.stringify(model),

能否为查询字符串参数添加模型

public class ProjectModel
    {
        public int Id { get; set; }
        public string CompanyCode { get; set; }
        public string ProjectName { get; set; }
        public string ProjectDescription { get; set; }
        public string ProjectType { get; set; }
        public string LocationSite { get; set; }
        public string Client { get; set; }
        public string Latitude { get; set; }
        public string Longitude { get; set; }
        public string Status { get; set; }
        public string FirstLevelApprover { get; set; }
        public string SecondLevelApprover { get; set; }
        public string ThirdLevelApprover { get; set; }
        public string userComment { get; set; }
        public string CrudType { get; set; }
    }
动作法中的传递模型

[WebMethod]
public static string SaveAndUpdateProject(ProjectModel model)
{
// your business logic
// you can access model properties by model.Id, model.CompanyCode
}
另外,在ajax方法中,您需要更改obj对象

var model= new Object();  
model.Id = $('#HdxtProjectId').val();
model.CompanyCode = $('#ddlCompanyPrm').val();
model.ProjectName = $('#txtProjectnamePrm').val();
// rest of the properties
在Ajax方法中,将数据更新为:

data: JSON.stringify(model),

将error函数添加到Ajax调用中以查看可能的错误问题是您的Webmethod需要querystring参数,而您正在发送一个对象。因此,路由从未被命中。下面的Alpesh Vaghela的回答应该可以。另外,字符串化对象的行应该是
JSON.stringify(obj)
正如您之前构建的那样。将error函数添加到Ajax调用中以查看可能的错误问题在于您的Webmethod需要querystring参数,而您正在发送一个对象。因此,路由从未命中。下面的Alpesh Vaghela的答案应该有效。同时,字符串化对象的行也应该有效只需将JSON.stringify(obj)设置为您之前已经构建的。ProjectMaster.aspx/SaveAndUpdateProject:1加载资源失败:服务器响应状态为500(内部服务器错误)ProjectMaster.aspx/SaveAndUpdateProject:1加载资源失败:服务器响应状态为500(内部服务器错误)