C# 查看在soapException之后ajax调用是否返回true或false
现在已解决 嗨,我正在通过Ajax调用一个c#web方法 我想在Ajax中处理返回值true和false,但似乎找不到查询返回数据的方法 对不起,如果这是一个简单的问题,我是新手 我的代码是C# 查看在soapException之后ajax调用是否返回true或false,c#,ajax,soapexception,C#,Ajax,Soapexception,现在已解决 嗨,我正在通过Ajax调用一个c#web方法 我想在Ajax中处理返回值true和false,但似乎找不到查询返回数据的方法 对不起,如果这是一个简单的问题,我是新手 我的代码是 $.ajax({ url: "Subscriptions.aspx/AddSub", data: "{ 'strReportPath': '" + Path + "' , s
$.ajax({
url: "Subscriptions.aspx/AddSub",
data: "{ 'strReportPath': '" + Path +
"' , strEmail: '" + $('#EmailAddress').val() +
"' , strDayofWeek: '" + daysSelected +
"' , strInterval: '" + intervalSelected +
"' , intTimeofDay: '" + timeofDay +
"' , strDayofMonth: '" + dayofMonth +
"'}",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data[0] == true) {
alert("Subscription added");
} else {
alert("There has been a error");
}
// Enable button again
$(".AddSub").removeAttr("disabled");
},
error: function (xhr, status, err) {
alert("Error adding subscription: " + err);
// Enable button again
$(".AddSub").removeAttr("disabled");
},
async: false
});
web方法是
[WebMethod]
public static bool AddSub(string strReportPath, string strEmail, string strDayofWeek, string strInterval, int intTimeofDay, int strDayofMonth)
{
// Create webservice object
ReportService2005.ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
try
{
// Make sure their is a semi colon at the end of the email
if (strEmail.EndsWith(";"))
{
// Do nothing
}
else
{
strEmail = strEmail + ";";
}
string _reportName = strReportPath;
DateTime topDatetime = DateTime.Now;
ExtensionSettings extensionSettings = new ExtensionSettings();
List<ParameterValue> extParameters = new List<ParameterValue>();
List<ParameterValue> parameters = new List<ParameterValue>();
string description = "Email: " + strEmail;
string eventType = "TimedSubscription";
extensionSettings.Extension = "Report Server Email";
// If report is monthly default its run time to 7am
if (strInterval == "Monthly")
{
intTimeofDay = 7;
}
string scheduleXml = "<ScheduleDefinition><StartDateTime>" + topDatetime.ToString("yyyy-MM-dd") + "-" + (intTimeofDay-1) +":00" + "</StartDateTime>";
// Set up the timing of the report.
switch(strInterval)
{
case "Daily":
scheduleXml += "<WeeklyRecurrence>" +
"<WeeksInterval> 1 </WeeksInterval>" +
"<DaysOfWeek>" + "<Monday>true</Monday>" +
"<Tuesday>true</Tuesday>" +
"<Wednesday>true</Wednesday>" +
"<Thursday>true</Thursday>" +
"<Friday>true</Friday>" + "</DaysOfWeek>" +
"</WeeklyRecurrence>";
break;
case "Weekly":
scheduleXml += "<WeeklyRecurrence>" +
"<WeeksInterval> 1 </WeeksInterval>" +
"<DaysOfWeek>" + strDayofWeek + "</DaysOfWeek>" +
"</WeeklyRecurrence>";
break;
case "Monthly":
scheduleXml += "<MonthlyRecurrence>" +
"<Days>" + strDayofMonth + "</Days>" +
"<MonthsOfYear>" +
"<January>true</January>" +
"<February>true</February>" +
"<March>true</March>" +
"<April>true</April>" +
"<May>true</May>" +
"<June>true</June>" +
"<July>true</July>" +
"<August>true</August>" +
"<September>true</September>" +
"<October>true</October>" +
"<November>true</November>" +
"<December>true</December>" +
"</MonthsOfYear>" +
"</MonthlyRecurrence>";
break;
}
scheduleXml += "</ScheduleDefinition>";
extParameters.Add(new ParameterValue() { Name = "RenderFormat", Value = "EXCELOPENXML" });
extParameters.Add(new ParameterValue() { Name = "TO", Value = strEmail });
extParameters.Add(new ParameterValue() { Name = "IncludeReport", Value = "True" });
extParameters.Add(new ParameterValue() { Name = "Subject", Value = "subject - " + " (" + strReportPath + ")" });
extensionSettings.ParameterValues = extParameters.ToArray();
//Create the subscription
rs.CreateSubscription(_reportName, extensionSettings, description, eventType, scheduleXml, parameters.ToArray());
// Success
return true;
}
catch(SoapException e)
{
// Failure
return false;
}
}
[WebMethod]
公共静态bool AddSub(字符串strReportPath、字符串strEmail、字符串strDayofWeek、字符串strInterval、int intTimeofDay、int strDayofMonth)
{
//创建Web服务对象
ReportService2005.ReportingService2005 rs=新的ReportingService2005();
rs.Credentials=System.Net.CredentialCache.DefaultCredentials;
尝试
{
//确保他们的电子邮件结尾是分号
if(strEmail.EndsWith(“;”))
{
//无所事事
}
其他的
{
strEmail=strEmail+“;”;
}
字符串_reportName=strReportPath;
DateTime topDatetime=DateTime.Now;
ExtensionSettings ExtensionSettings=新的ExtensionSettings();
List extParameters=new List();
列表参数=新列表();
string description=“电子邮件:”+strEmail;
string eventType=“TimedSubscription”;
extensionSettings.Extension=“报表服务器电子邮件”;
//如果报告是月度报告,则其运行时间默认为上午7点
如果(区间==“每月”)
{
intTimeofDay=7;
}
字符串scheduleXml=”“+topDatetime.ToString(“yyyy-MM-dd”)+“-”+(intTimeofDay-1)+“:00+”;
//设置报告的时间。
开关(跨区间)
{
个案“每日”:
scheduleXml+=“”+
" 1 " +
“+”真“+
“对”+
“对”+
“对”+
“真”+“”+
"";
打破
案例“每周”:
scheduleXml+=“”+
" 1 " +
“”+strDayofWeek+“”+
"";
打破
个案“每月”:
scheduleXml+=“”+
“”+每月标准日+“”+
"" +
“对”+
“对”+
“对”+
“对”+
“对”+
“对”+
“对”+
“对”+
“对”+
“对”+
“对”+
“对”+
"" +
"";
打破
}
scheduleXml+=“”;
添加(新参数Value(){Name=“RenderFormat”,Value=“EXCELOPENXML”});
Add(新参数Value(){Name=“TO”,Value=strEmail});
添加(新参数Value(){Name=“IncludeReport”,Value=“True”});
Add(新参数Value(){Name=“Subject”,Value=“Subject-”+”(“+strReportPath+”)});
extensionSettings.ParameterValues=extParameters.ToArray();
//创建订阅
rs.CreateSubscription(_reportName,extensionSettings,description,eventType,scheduleXml,parameters.ToArray());
//成功
返回true;
}
捕获(SOAPE例外)
{
//失败
返回false;
}
}
谢谢你的回答 啊解决了 现在,我在web方法中以字符串变量的形式返回数据
//Create the subscription
rs.CreateSubscription(_reportName, extensionSettings, description, eventType, scheduleXml, parameters.ToArray());
string bob = "true";
// Success
return bob;
}
catch(SoapException e)
{
string bob = "false";
// Failure
return bob;
}
然后在ajax中使用名称后跟.d后缀
success: function (bob) {
if (bob.d == "true") {
alert("Subscription added");
} else {
alert("There has been a error");
}
感谢stackoverflow实际上,您不需要使用变量来返回数据,只需返回“true”或“false”即可。请创建问题的答案并将其从问题中删除。其他人更容易知道问题已经解决。谢谢你的评论。我刚做完这件事。鲍比