C#和ajax调用
//Javascript函数 函数SaveAndUpdateProjectMaster(){ //C#WebMethodC#和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
[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(内部服务器错误)