[英]Asp.net mvc dropdownlist cascading error Cannot set property 'value' of null
Hy. HY。
I want to make dropdownlist cascadin. 我要制作下拉列表级联。 select dropdownlist and send editorfor.but 选择下拉列表并发送editor.but
Cannot set property 'value' of null error . 无法设置null错误的属性“值”。 I would like to send a value to editorfor a value of dropdownlist. 我想将一个值发送给editor以获得dropdownlist的值。
Can you help me? 你能帮助我吗?
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>
The problem seems coming from this return
statement: 问题似乎来自以下return
语句:
return Json(PRICE, JsonRequestBehavior.AllowGet);
This statement returns plain string value which doesn't contain PRICE
property, so result.PRICE
contains null value and causing null property assignment error message. 该语句返回不包含PRICE
属性的纯字符串值,因此result.PRICE
包含空值并导致空属性分配错误消息。 If you want to return the price value, simply use this inside done
function: 如果要返回价格值,只需在内部done
函数中使用以下命令:
document.getElementById("fyt").value = result;
or in jQuery version: 或在jQuery版本中:
$('#fyt').val(result);
But if you still want to return PRICE
property, specify it inside JSON data: 但是,如果您仍然想返回PRICE
属性,请在JSON数据中指定它:
return Json(new { PRICE = PRICE }, JsonRequestBehavior.AllowGet);
And the AJAX callback should be look like this: 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
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.