Вот мой код в javascript.неопределенный параметр объекта в jQuery
$('#destination_table').delegate('.destination', 'change', function() {
var url = "/Transactions/getDestination";
var getIndex = $(this).closest('tr').index();
alert(getIndex);
name = $(this).val();
$.ajax({
type: "GET",
url: url,
data: { name: name },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data); // returns [Object] with length 1
alert(data.geo); //alerts undefined.
$('.destination_type' + getIndex).val(data.type); //not showing any
$('.destination_geo' + getIndex).val(data.geo); //not showing
},
error: function (err) {
// alert(err);
}
});
});
Мои консоли отображает объект из ASP.NET MVC5 контроллера return Json(dest, JsonRequestBehavior.AllowGet);
, но когда я вызывать некоторые параметр/поле в объекте (data.type
) в success
это приводит, как определено.
из консоли в моем клиенте выглядит так
0: Object
DestinationID: 7
dateAdded: "/Date(1444406400000)/"
dateLastModified: "/Date(1444406400000)/"
geo: "USA"
name: "China"
type: "international"
visaRequired: true
winterDateFrom: "/Date(1444406400000)/"
winterDateTo: "/Date(1444406400000)/"
__proto__: Object
length: 1
дополнительной информации.
[HttpGet]
public ActionResult getDestination(Destination destination)
{
// var dest = db.Destination.Find(destination.DestinationID);
var dest = db.Destination.Where(x => x.name == destination.name).ToList();
return Json(dest, JsonRequestBehavior.AllowGet);
}
, когда я использую функцию Find
Linq я не имею никакого problem.but, когда я изменить его Linq запрос на Where
. он начал проблему ...
спасибо, что отвечает на мой вопрос. но есть ли способ, которым я могу использовать 'Where', где я не использую индексацию в jquery ?. –
@YuukkaLimson - Да, вы можете использовать 'First' или' FirstOrDefault' (в этом случае он вернет null для отсутствия соответствия) вместо 'Where', как я упоминал в своем ответе. –
@YuukkaLimson или 'FirstOrDefault' для случая, когда запрос не может ничего вернуть – Grundy