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

pav*_*ann 3 asp.net-mvc multi-select kendo-ui 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>
Run Code Online (Sandbox Code Playgroud)

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

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; 

}
Run Code Online (Sandbox Code Playgroud)

在模式控制器中调用的SetCombi函数中,我只想从多选中接收所选对象的两个ID,但我不知道它们应该如何发送到控制器.

请事先提供帮助

Mat*_*can 5

我想你有两个选择:

1)RegExID改为a string然后我相信它们会以逗号分隔的值出现.

2)(更好的选择)添加一个ViewModelPattern上面的模型具有许多相同属性的东西.这个的主要区别在于你会有

public List<int> RegExIDs { get; set; }
Run Code Online (Sandbox Code Playgroud)

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