不从ajax调用更新的HTML元素

时间:2013-08-01 19:08:23

标签: jquery asp.net-mvc json

我正在尝试在执行返回对象的ajax调用后更新页面上的某些输入字段。我知道正在进行调用并返回正确的项目,但是,它不会在文本框中写入这些项目。这就是我在ajax调用后设置它们的方式:

success: function(data) {
         $('#address_LocaleID').val(data.LocaleID);
         $('#address_StreetAddress').val(data.StreetAddress);
         $('#address_Address2').val(data.Address2);
         $('#address_StreetNumber').val(data.StreetNumber);
         $('#address_BuildingNumber').val(data.BuildingNumber);
         $('#address_City').val(data.City);
         $('#address_StateProvinceID').val(data.StateProvinceID);
         $('#address_CountryID').val(data.CountryID);
         $('#address_CountyID').val(data.CountyID);
         $('#address_PostalCode').val(data.PostalCode);
         $('#address_ApplicationTypeID').val(data.ApplicationTypeID);
         $('#address_MapURL').val(data.MapURL);
         $('#address_Description').val(data.Description);
         $('#address_IsActive').val(data.IsActive);
         $('#address_DateCreated').val(data.DateCreated);
}

带回的'data'参数是来自控制器的“Address”对象。我相信这就是问题所在,我正在返回一个C#对象,但是比方说,我在success函数中创建一个警告来吐出'data.City',它给了我正确的值。错误在哪里?

感谢您的帮助。

编辑:

行动方法:

        [HttpGet]
    public Address AddressGet(string guid, string id)
    {
        Guid addressID = new Guid(guid);
        Address address = new Address();
        address.LocaleID = new Guid(id);

        if (addressID == Guid.Empty)
        {
            return address;
        }
        else
        {
            address = _iRepository.Address_Get(addressID);

            return address;
        }
    }

没有什么特别的,只需返回一个Address对象。

2 个答案:

答案 0 :(得分:1)

尝试使用Json.parse(data)将响应数据转换为正确的javascript对象文字。

答案 1 :(得分:1)

你的dom查找可能还有一些东西可以确保所有的名字都是正确的。

此外,您不会告诉我们应该更改的dom对象的内容。我们不需要看到你的返回json,因为它在警报中工作,但我认为问题在于它何时尝试更改dom中的值。

还要确保ajax调用函数正由文档就绪函数括号中的某些东西调用。

//ajaxfunction outside of doc ready function

$(document).ready(function () {
//ajaxfunctioncall here
});