kendo multiselect,将所选值发送到控制器

时间:2013-10-16 08:55:38

标签: asp.net-mvc kendo-ui multi-select kendo-asp.net-mvc

我是ASP.NET mvc和kendo ui框架的新手,并且遇到以下问题:

我在一个带有多选的窗口中有一个部分视图,它从数据库中接收它的值。视图看起来像:

@model SoftwareAdminInterface.Models.Administration.Pattern
<div id="myContentPopupEditRole_div">

@using (Ajax.BeginForm("SetCombi", "Pattern", new {  }, new AjaxOptions() { HttpMethod = "post", UpdateTargetId = "myContentPopupEditRole_div" }))
{
    <center>
        <br />
    <table class="table_no_borders">
        <tr>
            <td style="width: 300px">
                @(
                Html.Kendo().MultiSelectFor(model => model.RegExId)
                    .MaxSelectedItems(2)
                    .Name("RegExID")
                    .DataTextField("RegExName")
                    .DataValueField("RegExID")
                    .Placeholder("Select Patterns...")   
                    .AutoBind(false)       
                    .DataSource(source => {
                        source.Read(read =>
                        {
                            read.Action("GetPatternsForCombi", "Pattern");
                        })
                    .ServerFiltering(true);
          })
    )
            </td>
        </tr>
    </table>
        <button class="k-button k-button-icontext k-grid-custom" id="get" type="submit">@Resources.General.BtnSave</button>
    </center>
}   
</div>

我正在使用一个看起来像这样的模型:

public class Pattern
{
    [ScaffoldColumn(false)]
    public int RegExID { get; set; }

    [Display(Name = "RegEx")]
    [Required]
    public string RegExName { get; set; }

    [UIHint("GridForeignKey")]
    public int CategoryID { get; set; }

    public string CategoryName { get; set; }

    public string ColumnName { get; set; }

    public string RegExTable { get; set; }

    [UIHint("GridForeignKey")]
    public int? TableID { get; set; }

    public string Version { get; set; }

    public string Description { get; set; 

}
在模式控制器中调用的SetCombi函数中的

,我只想从多选中接收所选对象的两个ID,但我不知道它们应该如何发送到控制器。

事先得到你的帮助

1 个答案:

答案 0 :(得分:5)

我认为你有两个选择:

1)将RegExID更改为string,然后我相信它们会以逗号分隔的值出现。

2)(更好的选项)添加ViewModel,其中包含许多与上述Pattern模型相同的属性。这个的主要区别在于你有

public List<int> RegExIDs { get; set; }

然后在您的控制器中,您将新的ViewModel作为post方法的参数,并根据需要解析列表中的值。