Warum erhalte ich beim Serviceaufruf ständig Nulldaten?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Warum erhalte ich beim Serviceaufruf ständig Nulldaten?

Post by Guest »

Ich habe einen Dienst, der den Controller aufruft, der über einen Cache-Dienst verfügt, um Antwortdaten als Standortliste basierend auf der Kunden-ID zu senden. Wie im folgenden Code gezeigt, verwende ich ihn zum Paging. Bei der ersten Antwort erhalte ich jedoch einen Nullwert, und wenn ich mich dann wieder auf das Dropdown-Menü konzentriere, erhalte ich die Antwort. Es wäre besser, es anhand des Codes zu verstehen.
IndexFormPage.razor


@($"{locationFieldName} {MOM.Alias.Common.DTO.Name}")














@code{
async Task GetLocationItems(ReadEventArgs args)
{
DataSourceRequest newRequest = new DataSourceRequest()
{
Filters = new List()
};

if (RecordLoading)
{

args.Request.Filters.Clear();
newRequest.Filters.Add(new FilterDescriptor
{
Member = nameof(LocationDTO.Id),
Operator = Telerik.DataSource.FilterOperator.IsEqualTo,
MemberType = typeof(int),
Value = Dto.LocationId
});
}
else
{
newRequest = GenerateLocationCustomFilterRequest(args.Request);
if (Dto.CustomerId > 0)
{
newRequest.Filters.Add(new FilterDescriptor
{
Member = nameof(LocationDTO.CustomerId),
Operator = Telerik.DataSource.FilterOperator.IsEqualTo,
MemberType = typeof(int),
Value = Dto.CustomerId
});
newRequest.Skip = 0;
//newRequest.PageSize = 100;
}
}
if (RanderFromCustomer && CustomerId > 0)
{
newRequest.Filters.Add(new FilterDescriptor
{
Member = nameof(LocationDTO.CustomerId),
Operator = Telerik.DataSource.FilterOperator.IsEqualTo,
MemberType = typeof(int),
Value = CustomerId
});
}

if (RanderFromLocation && LocationId > 0)
{
newRequest.Filters.Add(new FilterDescriptor
{
Member = nameof(LocationDTO.Id),
Operator = Telerik.DataSource.FilterOperator.IsEqualTo,
MemberType = typeof(int),
Value = LocationId
});
}
var result = await _locationservice.GetAllForDropDownWithPaging(newRequest, Dto.BranchId);
//newRequest.PageSize = result.Data.TotalItemCount;
args.Data = result?.Data?.CurrentPageData;
args.Total = result.Data.TotalItemCount;
}
}


LocationService.cs
public async Task GetAllForDropDownWithPaging(DataSourceRequest gridRequest, byte branchId)
{
try
{
HttpResponseMessage response = await _service.httpClient.PostAsync($"{API.Location}/{API.GetAllForDropDownWithPaging}/{branchId}", new StringContent(JsonConvert.SerializeObject(gridRequest), Encoding.UTF8, API.MediaType));
return await response.Content.ReadFromJsonAsync();
}
catch (System.Exception ex)
{

throw ex;
}
}

LocationController.cs
public async Task GetAllForDropDownWithPaging([FromBody] DataSourceRequest gridRequest, byte branchId)
{
Response result;
DataEnvelope dataToReturn;
try
{
result = _cacheService.GetData(CacheConstant.AllLocationCache);
if (result == null)
{
result = await _service.GetAllForDropDown();
DateTimeOffset expirationTime = DateTimeOffset.Now.AddMinutes(CacheConstant.CacheExpirationTime);
_ = _cacheService.SetData(CacheConstant.AllLocationCache, result, expirationTime);
}
IQueryable queriableData = result.Data.
Where(x => x.BranchId == branchId).AsQueryable();

DataSourceResult processedData = await queriableData.ToDataSourceResultAsync(gridRequest);

dataToReturn = new DataEnvelope
{
CurrentPageData = processedData.Data.Cast().ToList(),
TotalItemCount = processedData.Total
};
}
catch (Exception ex)
{

throw ex;
}
return Ok(new Response { Data = dataToReturn, Message = "SUCCESS" });

}

Bitte helfen Sie mir dabei.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post