Asp.net mvc 3 将Telerik组合框插入Telerik ASP.Net MVC3网格

Asp.net mvc 3 将Telerik组合框插入Telerik ASP.Net MVC3网格,asp.net-mvc-3,telerik,controls,viewmodel,Asp.net Mvc 3,Telerik,Controls,Viewmodel,我有一个ASP.NET MVC3视图,它有一个Telerik网格,该网格使用viewmodel作为其数据 其中一个要求是,我们需要在其中一个网格列中使用下拉控件,该列从查找表中获取数据 由于MVC3相对较新,我认为由于Razor视图只能使用一个模型指令IE: @model IEnumerable<MarketingWebsiteTools.Models.EditableItemInfo> 下拉查找值需要与网格数据一起映射回ViewModel 在这一点上,有必要提及我在ClientT

我有一个ASP.NET MVC3视图,它有一个Telerik网格,该网格使用viewmodel作为其数据

其中一个要求是,我们需要在其中一个网格列中使用下拉控件,该列从查找表中获取数据

由于MVC3相对较新,我认为由于Razor视图只能使用一个模型指令IE:

@model IEnumerable<MarketingWebsiteTools.Models.EditableItemInfo>
下拉查找值需要与网格数据一起映射回ViewModel

在这一点上,有必要提及我在ClientTemplate中使用Html.Telerik.ComboBox,如下所示:

    .Columns(columns =>
    {
    columns.Bound(o => o.ItemNmbr).Width(65);//.ClientTemplate("<label  name='ProductIdentifier' />");
    columns.Bound(o => o.Description).Width(65)
                .ClientTemplate(Html.Telerik().ComboBox()
                .Name("Special")
                **.BindTo(new SelectList())**
                .ToHtmlString());
    columns.Bound(o => o.Start_Date).Width(75).Format("{0:d}");
    columns.Bound(o => o.End_Date).Width(75).Format("{0:d}");
    columns.Bound(o => o.PromotionText).Width(75);
    columns.Command(commands => commands.Delete()).Width(125).Title("Delete");
    })
我的问题是:关于BindtonNew SelectList,我需要提供System.Collections.Generic.IEnumerable类型的参数,但是我不确定如何从我的viewmodel中获取该参数,或者,我应该以另一种方式获取该查找数据

我看了这个例子:

但是,我的代码或intellisense似乎无法识别任何模型,即: .bindtone新建SelectListModel

我还看了这个例子:

在控制器中似乎有一个对方法的调用,但同样,无法访问该控制器

提前感谢您的帮助


doug

使用模板可以非常轻松地完成。只需使用TempData或ViewBag将数据传递到视图,即可从控制器获取数据

@{
    List<AdjustmentReasonCodes> salesAuditReasons = new List<AdjustmentReasonCodes>();
    salesAuditReasons = (List<AdjustmentReasonCodes>)TempData["SalesAuditReason"];
}

column.Template(@<select id="@("ddlSalesAuditReason" + @item.CustCode.Replace(" ", "").Replace("-", "").Trim())" class="DropDown">
                    <option value="0">--Select--</option>
                    @foreach (AdjustmentReasonCodes adrc in salesAuditReasons)
                    {
                        if (item.RefReasonForAuditAdjustment == adrc.ReasonCode)
                        { 
                        <option value="@(adrc.ReasonCode)" selected="selected">@adrc.ReasonDescription</option> 
                        }
                        else
                        {                        
                        <option value="@(adrc.ReasonCode)">@adrc.ReasonDescription</option>
                        }
                    }
                </select>).Title("Audit Reason").Width(135);