Kendo MVC Dropdownlist ValueTemplate() cause dataSource.read() fail
<p>I have a kendo MVC dropdownlist as follow:</p>

<p><div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code>@(Html.Kendo().DropDownListFor(model =&gt; model.Storeroom)
  .Template("#=StoreroomCode# - #=Description#")
  .ValueTemplate("#=StoreroomCode# - #=Description#")
  .DataTextField("StoreroomCode")
  .DataValueField("StoreroomID")
  .DataSource(d =&gt;
  {
    d.Read(read =&gt;
  {
    read.Action("GetStoreRoomDropDownRepository", "Material")).Type(HttpVerbs.Post);
    });
  })
  .OptionLabel("--- Please Select ---")
)</code></pre>
</div>
</div>
</p>

<p>And I have a javascript function which manually refresh it when I click a button</p>

<p><div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>    function BindStoreRoomDropDown(ItemID) {
        var ddl = $('#Storeroom').data("kendoDropDownList");
        ddl.dataSource.read({ itemID: ItemID });
    }</code></pre>
</div>
</div>
</p>

<p>The problem is, when this JS function is called, the dropdownlist did not refresh, it did not even post to corresponding server side action. I thought it may be some JS error before post action, but no, there is no any JS errors.</p>

<p>More interesting is that, when I remove <code>.ValueTemplate()</code>, everything goes right! The action is called and the correct list is returned!</p>

<p>What is the possible cause of this behavior and how can I fix it? Thanks!</p>

<p><strong>EDITED</strong></p>

<p><div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>[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());
}</code></pre>
</div>
</div>
</p>