ASP.NET MVC 通过按钮渲染部分视图点击不渲染 Bootstrap-select

ASP.NET MVC Render Partial View via Button click not render Bootstrap-select

我在 .Net MVC 和 Jquery/CSS 以及那些东西方面相对较新。

我正在开发一个功能,当我点击一个按钮时,它会显示一个部分视图。我不希望它在页面加载时呈现,只是在我单击按钮时呈现。我已经在执行该操作,我的问题与库 Bootstrap-Select 和应用于部分视图中显示的组件的样式有关。

我正在使用下一个片段执行此操作:

$("#btn-create-new").on("click", function () {
        $('#myTabs a[href="#new-product-form-create-new"]').tab('show');
        //var tab_content_height = $('.modal-new-product-form').height() - $('#myTabs').height();
        //$('.tab-content').height(tab_content_height);

        $("#new-product-form-create-new").load('@Url.Action("PreCreationForm", "Home", new { createAction = "new" })');
});

当我这样做时,我认为 Bootstrap-select 的 JS 没有被执行。但是当我在视图中渲染 PartialView 时:

@Html.Partial("~/Views/Home/PreCreationForm.cshtml")

Select 组件的样式已正确应用。我需要第一种方法,因为我需要在控制器中执行一些操作。

可能是一个非常菜鸟的问题,但我在这方面没有太多经验。

感谢大家抽出时间, 安德烈

我不确定我是否理解正确,但问题是因为当您加载局部视图时,bootstrap-select 是在 jquery 文档准备好之后定义的.因此 bootstrap-select 不适用于文档准备就绪后创建的新元素。你必须调用 bootstrap-select 方法来初始化 "plugin" 在 partialview 被渲染后

var variableHere = "new";
var urlAjax = '@Url.Action("PreCreationForm", "Home")';
$.ajax({
    url: urlAjax,
    type: "GET",
    cache: false,
    data: {createAction : variableHere},
    success: function(result){
         $("#new-product-form-create-new").html(result);
         //whatever the init function is called you change it
         $("#yourElement").bootstrap-select();
    }
});

我想这就是你的意思。