我的观点中有这个代码:
<script>
var isChanged = false;
$(function () {
$('#stageOne').change(function () {
$.ajax({
url: "/Shop/ChangeStageTwo/",
data: { item: $("#stageOne option:selected").text() },
type: 'post',
success: function (myJSONdata) {
$("#stageTwo").html("");
var items = myJSONdata;
for (var i = 0; i < items.length; i++) {
var item = items[i];
var optionhtml = '<option value="' + item.text + '">' + items[i] + '</option>';
$("#stageTwo").append(optionhtml);
}
}
});
});
});
</script>
这是我的ChangeStageTwo功能:
public JsonResult ChangeStageTwo(string item)
{
// Do something...
var query = from f in db.Stages
where f.Code.Contains(tempDelivCod) && f.Code.Length > 4
select f.Name;
var sItems = new SelectList(query);
return Json(sItems, JsonRequestBehavior.AllowGet);
}
但是在运行时我在DropDownList中得到[object Object],而不是确切的值。有什么问题?
答案 0 :(得分:1)
我认为这个功能会起作用:
var items = myJSONdata;//somethink like ["aa", "bb"]...
$(items).each(function(index, optionText) {
$("#stageTwo").append($('<option />').attr('value', optionText).text(optionText));
});
答案 1 :(得分:0)
这一行:
var optionhtml = '<option value="' + item.text + '">' + items[i] + '</option>';
应该是这样的:
var optionhtml = '<option value="' + item.text + '">' + item.text + '</option>';
或
var optionhtml = '<option value="' + item.id + '">' + item.text + '</option>';
如果您提供JSON输出,我可以更具体。