2012-05-24 141 views
0

這裏是我的ASP.NET MVC項目我的編輯模板:ASP.NET MVC編輯器模板;參數傳遞到控制器

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<%= Html.Telerik().DropDownList() 
     .Name(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty)) 
     .DataBinding(binding => binding.Ajax().Select("GetTypeDataforRow","MyController")) 
%> 

我用我控制器GetTypeDataforRow方法檢索我的組合框的數據。有沒有辦法將參數傳遞給GetTypeDataforRow方法?如果是這樣的話是什麼語法?根據傳入此方法的參數,我的下拉菜單將顯示不同的數據。

非常感謝您的幫助。

回答

0

你可以在這個主題here找到一些信息。似乎官方文檔沒有DropDownList分支,但ComboBox會做的東西。它說,用ajax結合你應該做這樣的事情來傳遞參數給控制器:

.DataBinding(dataBinding => dataBinding 
    //Ajax binding 
    .Ajax() 
      //The action method which will return JSON and its arguments 
      .Select("_AjaxBinding", "Home", new {id = (string)ViewData["id"]}) 
) 

有一個時刻:使用此方法,因爲ViewData的是你不能讓你的組合框的值服務器端容器。相反,你將不得不使用JavaScript這樣的:

<script type="text/javascript"> 

function onComboBoxDataBinding(e) { 
    e.data = $.extend({}, e.data, { customParam: "customValue"}); 
} 

</script> 

希望這有助於你的好意。