Каскадная ошибка выпадающего списка mvc Asp.net Невозможно установить свойство 'значение' со значением NULL - PullRequest
0 голосов
/ 06 декабря 2018

Hy.
Я хочу сделать раскрывающийся список cascadin.выберите раскрывающийся список и отправьте editorfor.but
Невозможно установить свойство 'значение' с нулевой ошибкой.Я хотел бы отправить в редактор значение для раскрывающегося списка.
Можете ли вы мне помочь?

   public JsonResult GetPrice(string log)
        {
            int id = 1;
            HomeController.sqlconnection con = new HomeController.sqlconnection();
            string FIRMA = "select t.FIRMA,t.donem FROM dbo.TBLFRM as t where t.ID=" + id + "";
            SqlCommand cmd = new SqlCommand(FIRMA, con.connect());
            SqlDataReader rdrr = cmd.ExecuteReader();
            rdrr.Read();
            string firma = rdrr["FIRMA"].ToString();
            string donem = rdrr["DONEM"].ToString();
            ExtreModel item = new ExtreModel();
            item.ItemList = new List<ExtreModel>();
            string urun = "select P.PRICE from DBO.LG_" + firma + "_PRCLIST as p,DBO.LG_" + firma + "_ITEMS as I WHERE P.CARDREF=I.LOGICALREF AND P.CARDREF=" + log + "";

            SqlCommand cmdd = new SqlCommand(urun, con.connect());            
                SqlDataReader rdr = cmdd.ExecuteReader();
            rdr.Read();
                   string PRICE = rdr[0].ToString();
                con.connect().Close();
                return Json(PRICE, JsonRequestBehavior.AllowGet);

        }



 <script>
        $("#LOGI").change(function () {
            var select = $(this);
            var cityname = select.val();
            if (cityname != "") {
                $.ajax({
                    method: "GET",
                    url: '/Mobil/GetPrice' + '?log=' + cityname,
                    beforeSend: function () {

                    }
                }).done(function (result) {
                    document.getElementById("fyt").value = result.PRICE;
                });
            } else {
            }
        });
    </script>

1 Ответ

0 голосов
/ 06 декабря 2018

Проблема, кажется, исходит из этого оператора return:

return Json(PRICE, JsonRequestBehavior.AllowGet);

Этот оператор возвращает обычное строковое значение, которое не содержит свойства PRICE, поэтому result.PRICE содержит нулевое значение и вызывает нулевое свойствосообщение об ошибке присваивания.Если вы хотите вернуть значение цены, просто используйте это внутри done функции:

document.getElementById("fyt").value = result;

или в версии jQuery:

$('#fyt').val(result);

Но если вы все еще хотите вернуть PRICE свойство, укажите его в данных JSON:

return Json(new { PRICE = PRICE }, JsonRequestBehavior.AllowGet);

И обратный вызов AJAX должен выглядеть следующим образом:

$("#LOGI").change(function () {
    var cityname = $(this).val();
    if (cityname != "") {
        $.ajax({
            type: "GET",
            url: '/Mobil/GetPrice',
            data: { log: cityname }
            }).done(function (result) {
                $("#fyt").val(result.PRICE); // now the price property should exist
            });
    } else {
       // do something else
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...