ASP.NET MVC编辑器模板;将参数传递给控制器

时间:2012-05-24 12:01:12

标签: asp.net-mvc-3

这是我的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方法?如果是这样的话语法是什么?我的下拉菜单将显示不同的数据,具体取决于传入此方法的参数。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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>

希望这对你有所帮助。