Чтобы достичь своей цели в jQuery, вы можете использовать подход следующим образом.
[ApiController]
[Route("api/ux/input/[controller]")]
public class SelectController : ControllerBase
{
[HttpGet("samples")]
public async Task<JsonResult> Get() => new JsonResult(await sampleService.RetrieveSampleEntity());
}
Тогда внутри вашего взгляда у вас должен быть код, подобный этому.
$(document).ready(function() {
loadAndOrderSampleSelect();
});
function loadAndOrderSampleSelect() {
axios.get('/api/ux/input/select/samples').then((response) => {
let samples = sortSelectByCategory(response.data);
for(var index = 0; index < samples.length; index++) {
$('#drpSamples').append('<option value="' + samples[index].id + '">' + samples[index].name + '</option>');
}
});
}
function sortSelectByCategory(items) {
return items.sort(function(a, b) {
return (b['category'] > a['category']) ? 1 : ((b['category'] < a['category']) ? -1 : 0);
});
}
Сортировка может работать неправильно, и я предполагаю, что у вас есть выбор с идентификатором на странице drpSamples
, но это должно указать вам правильное направление, чтобы сделать это с помощью JavaScript вместо серверной логики.Тем не менее, если вы находитесь на сервере внутри вашего Get
, вы можете просто сделать sampleService.RetrieveSamples().OrderBy(c => c.Category);