我有一个剑道MVC下拉列表如下:
@(Html.Kendo().DropDownListFor(model => model.Storeroom)
.Template("#=StoreroomCode# - #=Description#")
.ValueTemplate("#=StoreroomCode# - #=Description#")
.DataTextField("StoreroomCode")
.DataValueField("StoreroomID")
.DataSource(d =>
{
d.Read(read =>
{
read.Action("GetStoreRoomDropDownRepository", "Material")).Type(HttpVerbs.Post);
});
})
.OptionLabel("--- Please Select ---")
)

我有一个javascript函数,当我点击按钮时手动刷新它
function BindStoreRoomDropDown(ItemID) {
var ddl = $('#Storeroom').data("kendoDropDownList");
ddl.dataSource.read({ itemID: ItemID });
}

问题是,当调用此JS函数时,下拉列表没有刷新,它甚至没有发布到相应的服务器端操作。我认为在post post之前可能会出现一些JS错误,但是没有,没有任何JS错误。
更有意思的是,当我删除.ValueTemplate()
时,一切都正常!调用该操作并返回正确的列表!
此行为的可能原因是什么?如何解决?谢谢!
EDITED
[HttpPost]
public ActionResult GetStoreRoomDropDownRepository(int? itemID, string whereclause){
if(!itemID.HasValue) return Json("");
var CostCenterList = SiteCostCenterService.Instance.getCodeCenterParaBySiteCode(woContext, whereclause);
var storeRoomQuery = StoreroomService.Instance.getStoreroomListByItemID(pmsContext, itemID.Value, CostCenterList);
return Json(storeRoomQuery.Distinct().ToList());
}