Asp.net mvc Telerik dropdownlist不';t在网格类库中加载

Asp.net mvc Telerik dropdownlist不';t在网格类库中加载,asp.net-mvc,telerik,telerik-grid,nopcommerce,Asp.net Mvc,Telerik,Telerik Grid,Nopcommerce,我必须创建一个nopCommerce插件来实现一些telerik网格,其中dropdownlist作为可编辑行,问题是该插件是一个类库,而不是ASP.NET MVC应用程序,路由是在RouteProvider.cs文件中手动完成的。所以我在这里引用了这个例子: 并且必须具有以下配置: 我的模型: public class ContentModel : BaseNopModel { public string ContentId { get; set; } [NopRes

我必须创建一个nopCommerce插件来实现一些telerik网格,其中dropdownlist作为可编辑行,问题是该插件是一个类库,而不是ASP.NET MVC应用程序,路由是在RouteProvider.cs文件中手动完成的。所以我在这里引用了这个例子: 并且必须具有以下配置: 我的模型:

    public class ContentModel : BaseNopModel
{
    public string ContentId { get; set; }

    [NopResourceDisplayName("Plugins.Widgets.DiscountBanner.Title")]
    public string Title { get; set; }

    [NopResourceDisplayName("Plugins.Widgets.DiscountBanner.Content")]
    public string Content { get; set; }

    [UIHint("DiscountsEditor"), Required]
    public string Discounts { get; set; }
}
我的控制器:

[GridAction]
public ActionResult _SelectAjaxEditing()
{
    List<ContentModel> model = new List<ContentModel>();
    return View("Nop.Plugin.Widgets.DiscountBanner.Views.WidgetsDiscountBanner.Configure", _discountBannerSettings.contentGrid == "" || _discountBannerSettings.contentGrid == null ? new GridModel(model) : new GridModel(JsonHelper.JsonDeserialize<List<ContentModel>>(_discountBannerSettings.contentGrid)));
}
但是模板在我将一些信息放入网格后加载,不可编辑,如果我想编辑它,dropdownlist会转换为文本框,我不知道下一步该怎么做,或者我是否可以使用另一个控制器,但可以从当前视图而不是部分视图加载下拉列表


谢谢。

您需要将视图复制到输出目录。尝试将其更改为“更新时复制”。您还需要在视图文件夹中添加一个web.config文件

      @{
        Layout = "";
    }
    @model Nop.Plugin.Widgets.DiscountBanner.Models.ConfigurationModel
    @using Nop.Plugin.Widgets.DiscountBanner.Models;
    @using Nop.Web.Framework;
    @using Telerik.Web.Mvc.UI;

    @using Nop.Services.Discounts;

<script type="text/javascript">
    function onEdit(e) {
        $(e.form).find('#Discounts').data('tDropDownList').select(function (dataItem) {
            return dataItem.Value == e.dataItem['Text'];
        });
    }
    </script>
    <table class="adminContent">
    <tr>
        <td class="adminTitle" colspan="2">
            DiscountBanner Plugin for sing-up and sales tracking script implementation on your site
        </td>
    </tr>
    <tr>
        <td class="adminTitle">
                @Html.NopLabelFor(model => model.ZoneId):
        </td>
        <td class="adminData">
                @Html.DropDownListFor(model => model.ZoneId, Model.AvailableZones)
                @Html.ValidationMessageFor(model => model.ZoneId)
        </td>
    </tr>
    <tr>
        <td class="adminTitle" colspan="2">
            @(Html.Telerik().Grid<ContentModel>()
            .DataKeys(keys =>
                {
                    keys.Add(model => model.ContentId);
                })
            .Name("discount-settings-grid")
            .ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Text).ImageHtmlAttributes(new { style = "margin-left:0" }))
            .DataBinding(dataBinding =>
                {
                    dataBinding.Ajax()
                        .Select("_SelectAjaxEditing", "WidgetsDiscountBanner")
                        .Insert("_InsertAjaxEditing", "WidgetsDiscountBanner")
                        .Update("_SaveAjaxEditing", "WidgetsDiscountBanner")
                        .Delete("_DeleteAjaxEditing", "WidgetsDiscountBanner");
                }
            )
            .Columns(columns =>
                {
                    columns.Bound(c => c.Title);
                    columns.Bound(c => c.Content);
                    columns.Bound(c => c.Discounts);

                    columns.Command(commands =>
                        {
                            commands.Edit().ButtonType(GridButtonType.Text);
                            commands.Delete().ButtonType(GridButtonType.Text);
                        }).Width(180).Title("Commands");
                })
                .ClientEvents(events => events.OnEdit("onEdit"))
                .EnableCustomBinding(true)
             )
        </td>
    </tr>
</table>
@using Telerik.Web.Mvc.UI;
@using Nop.Services.Discounts;

@{
    var _discountService = Nop.Core.Infrastructure.EngineContext.Current.Resolve<IDiscountService>();
    var discounts = _discountService.GetAllDiscounts(null, true);
    List<SelectListItem> listDiscounts = new List<SelectListItem>();
    foreach (var item in discounts)
    {
        listDiscounts.Add(new SelectListItem() { Text = item.Name, Value = item.Id.ToString() });
    }
}
@Html.Telerik().DropDownList().Name("Discounts").BindTo(listDiscounts)
columns.Bound(c => c.Discounts)
                        .ClientTemplate(
                        Html.Telerik().DropDownList().Name("Discount").BindTo(listDiscounts).ToHtmlString());