Я новичок в WebApi, и сейчас у меня есть два метода httpPost, таких как
[HttpPost]
public List<YellowPages.Person> AddPersonDetails(YellowPages.Person person)
{
Repository.Repository.personsList.Add(person);
return Repository.Repository.personsList;
}
а второй метод
[HttpPost]
public List<YellowPages.City> getRelevantCity(string stateID)
{
return new Repository.YellowPages.City().getCity()
.Where(x => x.StateID ==stateID).ToList();
}
всякий раз, когда я вызываю метод getRelevantCity, вызывается метод AddPersonDetails, я считаю, что это как-то связано с архитектурой REST. теперь мой вопрос: как я могу справиться с этой ситуацией. Есть ли что-нибудь, что я могу сделать в файле WebApiConfig.cs и добавить ограничения? если да, то как обрабатывать ограничения для типа модели, которые я использую. Спасибо.
ОБНОВЛЕНИЕ 1
как я предположил, я изменил свой метод удаления атрибутов следующим образом
public List<YellowPages.Person> AddPersonDetails(YellowPages.Person person)
{
Repository.Repository.personsList.Add(person);
return Repository.Repository.personsList;
}
public List<YellowPages.City> getRelevantCity(string stateID)
{
return new Repository.YellowPages.City().getCity().Where(x => x.StateID == stateID).ToList();
}
Мой вызов ajax выглядит следующим образом
$('#StateID').change(function () {
$.ajax({
type: 'POST',
url: '/api/shoppingCart/getRelevantCity',
ContentType: 'application/json',
data: { 'stateID': $('#StateID').val() },
dataType: 'json',
success: function (returnData) {
var grid = '';
$.each(returnData, function (i, d) {
grid = grid + createDom(d);
});
$('#result').empty().append(
grid
);
},
error: function (xhr, ajaxOptions, thrownError) {
alert('error');
}
});
});
$('#btnAjax').click(function (e) {
debugger;
e.preventDefault();
var d = { 'PersonName': $('#PersonName').val(), 'gender': $('#gender').prop('checked', true).val(), 'StreetAddress': $('#StreetAddress').val(), 'StateID': $("#StateID option:selected").text(), 'Pincode': $('#Pincode').val() };
$.ajax({
type: 'POST',
url: '/api/shoppingCart/AddPersonDetails',
ContentType: 'application/json',
data: d,
dataType: 'json',
success: function (returnData) {
var grid = '';
$.each(returnData, function (i, d) {
grid = grid + createDom(d);
});
$('#result').empty().append(
grid
);
},
error: function (xhr, ajaxOptions, thrownError) {
alert('error');
}
});
});
Независимо от того, какой вызов ajax я создаю, вызывается первый метод, можете ли вы помочь мне, как его перекрыть?
ОБНОВЛЕНИЕ 2
мой вопрос прост
Предположим, если у меня есть 4 метода GET в моем webApi, то как я могу обрабатывать webApi, чтобы я мог реализовать все реализованные 4 метода GET.