0

这是我的 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 方法?如果是这样,它的语法是什么?我的下拉菜单将根据传递给此方法的参数显示不同的数据。

提前感谢您的帮助。

4

1 回答 1

0

您可以在此处找到有关此主题的一些信息。似乎官方文档没有 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>

无论如何,希望这对您有所帮助。

于 2012-07-06T15:37:16.707 回答