我有一個MVC4應用程序。我的索引頁面包含一個設置JQuery UI選項卡。在每個選項卡中,我都有使用Ajax操作鏈接進行操作和更新的內容。在我的一個標籤中,我有一個Select2選項框。當第一次訪問該選項卡時,此框將正確呈現,並且腳本按照它們應有的功能運行。但是,當單擊其中一個AjaxActionLinks時,當部分視圖從控制器返回時,選項框會默認基本功能(Select2未啓用)。我相信這個問題可能是由於腳本沒有在返回的視圖上顯示而引起的。是否有辦法在從ActionResult返回部分視圖時重新呈現此腳本?Select2腳本無法正確呈現當視圖從動作返回結果
我的索引頁包含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鏈接?我試圖將腳本移動到我的索引頁面,但我不能讓選項框正確呈現。任何幫助,將不勝感激......我可以提供額外的細節,如果有必要.....
您需要在ajax鏈接成功回調的元素上再次初始化select2 –