这是我的问题。我正在制作ajax请求以从控制器获取对象。对象(或其他东西)被带回来,但我不知道如何访问被带回的对象的属性。该对象的类型为“Address”,因此具有Address.Address1,Address.City等属性。这是我的代码:单击一个按钮后,
function showEditAddress(addressid) {
$.get("/Website/Accommodation/AddressGet",
{ guid: addressid.toString() },
function(data) {
//Get values from variable 'data' such as described above
//and append to form 'dialog'
$("#dialog").dialog({
// autoOpen: false,
show: {
effect: "explode",
duration: 250
},
hide: {
effect: "explode",
duration: 250
},
buttons: {
"Save": {
text: "Save",
class: "",
click: function () {
//save form
$(this).dialog("close");
}
},
"Cancel": {
text: "Cancel",
class: "",
click: function () {
$(this).dialog("close");
}
}
},
modal: true
});
});
}
控制器操作:
public Address AddressGet(string guid)
{
Guid g = new Guid(guid);
return _iCoreRepository.Addresses.Where(p => p.AddressID == g).SingleOrDefault();
}
任何帮助将不胜感激!!!谢谢!!!
答案 0 :(得分:2)
Address
属性的值,您只需在data
前加一个点并输入de property name。像这样:
//(....)
function(data) {
//Get values from variable 'data' such as described above
//and append to form 'dialog'
//show address id.
alert(data.AddressID);
请记住,javascript区分大小写,因此您需要在地址ID中使用大写字母A
和ID
,就像在C#中一样。
在控制器中,您需要将最后一行替换为以下内容:
var address = _iCoreRepository.Addresses.Where(p => p.AddressID == g).SingleOrDefault();
return Json(address, JsonRequestBehavior.AllowGet);
该方法必须返回JsonResult
。 Json方法在将数据响应给客户端之前,以json格式序列化对象,在本例中为address。
如果你需要Json方法接受IEnumerables,比如List<>或数组。在javascript中,您的数据对象将是一个长度属性,并将通过使用索引器来访问每个元素:
data[0].AddressID.
答案 1 :(得分:1)
您可以尝试返回Address
。
JsonResult
个对象
public ActionResult AddressGet(string guid)
{
Guid g = new Guid(guid);
var address = _iCoreRepository.Addresses.Where(p => p.AddressID == g).SingleOrDefault();
return Json(address, JsonRequestBehavior.AllowGet);
}
然后在你的jquery中,返回的data
是你的地址对象,你可以访问它们在C#类中出现的字段:
function showEditAddress(addressid) {
$.get("/Website/Accommodation/AddressGet",
{ guid: addressid.toString() },
function(data) {
//Get values from variable 'data' such as described above
//and append to form 'dialog'
//Access it like: data.Address1, data.City etc...
});
}
}