从操作结果返回视图时,Select2脚本无法正确呈现

时间:2014-07-01 02:34:54

标签: javascript jquery ajax asp.net-mvc-4 jquery-select2

我有一个MVC4应用程序。我的索引页面包含一个设置的JQuery UI选项卡。在每个选项卡中,我都有使用Ajax操作链接操作和更新的内容。在我的一个标签上,我有一个Select2选项框。首次访问选项卡时,此框正确呈现,脚本按​​预期运行。但是,当我单击其中一个AjaxActionLinks时,当部分视图从控制器返回时,选项框默认基本功能(Select2未启用)。我认为问题可能是由于脚本未在返回的视图上呈现而引起的。有什么方法可以在从ActionResult返回部分视图时重新呈现此脚本吗?

我的索引页面包含Select2.css:

<link rel="stylesheet" href="~/Content/select2.css">

我的选项卡包含Select2.js以及要加载和格式化选项框的脚本:

<script src="~/Scripts/select2.js"></script>

<!--- Select2 Script -->
<script>
    $(document).ready(function () { $("#e1").select2(); });
</script>

我的选项卡还包含Ajax.ActionLink ...正在替换的Div是整个选项卡本身。我知道这是正常的,因为我在所有其他选项卡上使用相同的逻辑。

@Ajax.ActionLink("My Text", "ControllerMethod", new { param = 1 }, new AjaxOptions { InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace, UpdateTargetId = "divToReplace", })

我的控制器方法只是构建一个列表并将其发送回视图:

    public ActionResult ControllerMethod (int param)
    {
        Session.Add("paramID", param);
        IEnumerable<SymbolAndNameDTO> myList = client.GetMyList();
        ViewBag.myList = myList;

        return View(ViewBag);
    }

所以有人可以告诉我为什么首次按下选项卡时选项卡选项框会正确呈现,但是在我单击AjaxAction链接之后没有?我已经尝试将脚本移动到我的索引页面,但我无法正确地呈现选项框。任何帮助将不胜感激......如有必要,我可以提供更多细节......

1 个答案:

答案 0 :(得分:1)

我正在引用JQuery两次......一旦在索引页面上,然后再次在渲染的视图上..愚蠢的愚蠢。谢谢。