C# 如何在C中将一个WebMethod字段调用到另一个WebMethod#
我正在研究两个web方法,我想从另一个web方法访问一个字段,我不知道如何才能做到这一点。 我想在另一个web方法中调用C# 如何在C中将一个WebMethod字段调用到另一个WebMethod#,c#,asp.net,webmethod,C#,Asp.net,Webmethod,我正在研究两个web方法,我想从另一个web方法访问一个字段,我不知道如何才能做到这一点。 我想在另一个web方法中调用DivisionCode,可以吗 WebMethod1获取公司信息: 从这个web方法中,我想获得DivisionCode=company.DivisionCode,并将其作为参数传递到另一个web方法中 [WebMethod] public static List<Company> Getcompanies(string Countrycode,
DivisionCode
,可以吗
WebMethod1获取公司信息:
从这个web方法中,我想获得DivisionCode=company.DivisionCode
,并将其作为参数传递到另一个web方法中
[WebMethod]
public static List<Company> Getcompanies(string Countrycode, string Companycode)
{
GetInitiatorList.MasterDataServiceClient oClient = new GetInitiatorList.MasterDataServiceClient();
Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M[] initiatorslist = oClient.GetCompanies(Countrycode, Companycode);
//almarai.giveaway.getinitiatorlist.alm_company_m[] companymlist = initiatorslist.companies;
List<Company> companyes = new List<Company>();
foreach (Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M company in initiatorslist)
{
companyes.Add(new Company()
{
CompanyCode = company.CompanyCode,
CompanyName = company.CompanyName,
DivisionCode = company.DivisionCode
});
}
return companyes;
}
WebMethod 2 GetDivision
这是我的第二个web方法,我想将FirsrWebMethod字段传递给另一个web方法(DivisionCode=company.DivisionCode
)
JS
公司:
function BindCompanies() {
var countrycode = $('#ddlCountry').val();
$('#ddlCompany').empty();
if (countrycode == 'OMN') {
Companycode = '7000';
}
else if (countrycode == 'SAU') {
Companycode = '1000';
}
else if (countrycode == 'UAE') {
Companycode = '5000';
}
else if (countrycode == 'BAH') {
Companycode = '4000';
}
else if (countrycode == 'KWT') {
Companycode = '6000';
}
$.ajax({
type: "POST",
url: "Header.aspx/Getcompanies",
data: JSON.stringify({ Countrycode: countrycode, Companycode: Companycode }),
dataType: "json",
contentType: "application/json",
success: function (res) {
$.each(res.d, function (data, value) {
$("#ddlCompany").append($("<option></option>").val(value.CompanyCode).html(value.CompanyName));
});
}
});
}
在我的AJAX方法中,我从所选下拉列表中传递了两个参数,我想将另一个参数作为分区代码从一个WebMethod传递到另一个WebMethod
也许我们可以通过AJAX,但我如何在ASPX中存储(DevisionCode不是单值,而是列表,正如您所看到的,我只在列表中存储这些值)
请帮助我那么,您从哪里调用GetDivision webmethod?大概它来自一个页面,使用JavaScript/AJAX?如果是这样,那么就必须在这里添加额外的参数。因此,您必须获得对第一个方法的响应,从响应数据中提取所需的代码,并在对第二个方法的调用中使用它。在没有看到JS代码的情况下,很难确切地确定应该编写什么代码,但这是一般的想法。@Adyson我正在使用JQuery AJAX从Aspx页面调用GetDivision。好的,我正在更新我的js代码,请检查我更新的代码好的。你打电话给公司时怎么样?您是否从结果中提取了部门代码数据,并将其存储在某个位置,就像(看起来)您对CountryCode和CompanyCode所做的那样?似乎您只需要对第三个字段再次执行相同的过程。我不确定-您仍然只展示了场景的一部分。我不太明白这里的目的。。。GetDivision将返回特定国家/地区和公司内所有部门的列表。你用它来填充一个分区下拉列表。这完全有道理。那么,为什么要在其中放入特定的除法代码呢?您真的需要一个单独的webmethod来返回单个分区的详细信息吗?表面上看,这完全没有道理。我不知道你的意思。如果可以通过2个字段,则可以通过3个字段。你尝试了什么,出了什么问题?就像我说的,如果你不显示所有的代码,我就不能给你具体的建议。另外,请参考我之前的评论,并解释为什么要这样做,因为这样做没有逻辑意义。
[WebMethod]
public static List<Devision> GetDivision(string Countrycode, string Companycode)
{
string Divisi = string.Empty;
var v = new Company();
v.DivisionCode = Divisi; //v.DivisionCode returning "" (Empty string)
GetInitiatorList.MasterDataServiceClient oClient = new GetInitiatorList.MasterDataServiceClient();
// Almarai.GiveAway.GetInitiatorList.INITIATORS_LIST initiatorsList = oClient.GetInitiatorsListByWorkflow(userid, work);
Almarai.GiveAway.GetInitiatorList.ALM_DIVISION_M[] divisionMList = oClient.GetActiveDivisions(Countrycode, Companycode, Divisi) ;
List<Devision> Division = new List<Devision>();
foreach (Almarai.GiveAway.GetInitiatorList.ALM_DIVISION_M Devision in divisionMList)
{
Division.Add(new Devision()
{
DevisionCode = Devision.DivisionCode,
DevisionName = Devision.DivisionName
});
}
return Division;
}
public class Devision
{
public string DevisionCode { get; set; }
public string DevisionName { get; set; }
}
$('#ddlCompany').change(function (e) {
BindDivision();
});
function BindCompanies() {
var countrycode = $('#ddlCountry').val();
$('#ddlCompany').empty();
if (countrycode == 'OMN') {
Companycode = '7000';
}
else if (countrycode == 'SAU') {
Companycode = '1000';
}
else if (countrycode == 'UAE') {
Companycode = '5000';
}
else if (countrycode == 'BAH') {
Companycode = '4000';
}
else if (countrycode == 'KWT') {
Companycode = '6000';
}
$.ajax({
type: "POST",
url: "Header.aspx/Getcompanies",
data: JSON.stringify({ Countrycode: countrycode, Companycode: Companycode }),
dataType: "json",
contentType: "application/json",
success: function (res) {
$.each(res.d, function (data, value) {
$("#ddlCompany").append($("<option></option>").val(value.CompanyCode).html(value.CompanyName));
});
}
});
}
function BindDivision() {
//var DivisionCode = Not sure how to pass
var companycode = $('#ddlCompany').val();
var countrycode = $('#ddlCountry').val();
$('#ddlDivision').empty();
$.ajax({
type: "POST",
url: "Header.aspx/GetDivision",
data: JSON.stringify({ Countrycode: countrycode, Companycode: companycode }),
dataType: "json",
contentType: "application/json",
success: function (res) {
$.each(res.d, function (data, value) {
$("#ddlDivision").append($("<option></option>").val(value.DevisionCode).html(value.DevisionName));
});
}
});
}