Возврат данных JsonResult не отображается в текстовом поле, но отображается в текстовой области

JsonResult перезванивает мне анонимным типом. Я могу использовать функцию оповещения, чтобы проверить, правильно ли получена клиентская сторона, но невозможно заполнить значение текстового поля этим результатом. Хотя я могу заполнить значение textarea, я попытался проанализировать результат (текстовое поле привязано к моему представлению модели, к типу данных с плавающей запятой и int, но я не думаю, что это из-за этого типа).

Это мой код:

    $.ajax({
                type: "POST",
                url: "/MyCalledFunction/?arg1=" + $("#FK_ARG").val(),                datatype: "json",
                success: function(data) {
                    if (data) {
// my return result if an anymous type 
                        var price = data.price;
                        var NbDefaultDaysNumber = data.NbDefaultDaysNumber;
alert(price);// display the msgbox with '100'
                        $("#MY_PRICE").html(price);// textbox type value -> failed
                        $("#DEFAULT_DAYS").html(NbDefaultDaysNumber); // textbox type value -> failed
                        $("#ANOTHER_AREA").html(NbDefaultDaysNumber);// text area property value... -> works

                    }
                }
            });


        public JsonResult MyCalledFunction(string arg1)
        {
// some unintersting code...
           var myReturnJSon = new {price = 100, 
                            DEFAULT_DAYS = 10};
return Json(myReturnJSon);
        }

Я уверен, что это глупый вопрос о привязке к некоторым текстовым параметрам где-то. Любая идея?


person PetersLast    schedule 06.05.2011    source источник


Ответы (2)


Для текстового поля (под которым я предполагаю, что вы имеете в виду <input> с type="text", вы должны использовать val(), а не html()

$("#DEFAULT_DAYS").val(NbDefaultDaysNumber);
person no.good.at.coding    schedule 06.05.2011

Если у вас есть ввод в представлении, подобный этому

<input type="text" value="" id="MY_PRICE" />

тогда вы должны использовать

var price = data.price;                          
var NbDefaultDaysNumber = data.NbDefaultDaysNumber;  
alert(price);// display the msgbox with '100'                         
$("#MY_PRICE").val(); // This Display in text box

Это должно быть работой.

person dev    schedule 06.05.2011