3

我是 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,但我不知道应该如何将它们发送到控制器。

提前感谢您的帮助

4

1 回答 1

5

我认为你有两个选择:

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

2)(更好的选择)添加一个与您的模型ViewModel具有许多相同属性的Pattern模型。主要区别在于您将拥有

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

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

于 2013-10-16T12:35:23.120 回答