Я хотел бы передать параметры в мой веб-сервис из jquerys ajax. Как я могу это сделать?
Я уже просмотрел несколько связанных вопросов, но не смог найти решение, которое сработало бы для меня. Я пробовал это: JQuery AJAX параметр не передается в MVC , но я не использую mvc, поэтому я уверен, что именно поэтому решение не работает
Мой jquery выглядит так:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "CarService.svc/GetCar",
data: {CarID:117},
dataType: "json",
success: function (data) {
$("#lblCurrentTime").text("");
$("#lblCurrentTime").text(data.d.CarID);
}
});
Что-то не так с моей частью данных, правильно? Если оставить data: part как data: "{}", я смогу запустить мой метод (и не передаю никаких параметров), но в тот момент, когда я попробую описанный выше файербаг, я скажу:
Firebug's log limit has been reached. 0 entries not shown. Preferences
POST http://localhost:64461/TimeService.svc/GetCar
POST http://localhost:64461/TimeService.svc/GetCar
500 Internal Server Error
1.12s
Мой веб-сервис выглядит так:
[OperationContract]
public CarTable GetCar(int id)
{
using (var sqlc = new SqlConnection(@"sdfgsdfg"))
{
sqlc.Open();
var cmd = sqlc.CreateCommand();
cmd.CommandText = "HUGE QUERY HERE ^^";
//id = 117;
cmd.Parameters.Add("CarID", System.Data.SqlDbType.Int).Value = id;
using (var reader = cmd.ExecuteReader())
{
CarTable Cars = new CarTable();
while (reader.Read())
{
Cars.CarID = reader["CarID"].ToString();
Cars.CarName = reader["CarName"].ToString();
}
return Cars;
}
}
}
[DataContract]
public class CarTable
{
[DataMember]
public string CarID { get; set; }
[DataMember]
public string CarName { get; set; }
}
РЕДАКТИРОВАТЬ: Если я изменить часть данных на:
data: CarID=117,
Я получаю Sys.ParameterCountException: несоответствие количества параметров.
[Прервать эту ошибку] {имя: "формат", тип: String}