2012-09-04 62 views
0

我試圖實現彈出聯繫我們在本教程的對話框: http://www.matthidinger.com/archive/2011/02/22/Progressive-enhancement-tutorial-with-ASP-NET-MVC-3-and-jQuery.aspxJQuery用戶界面對話框沒有發現

我有一個運行精絕的解決方案的工作版本。

雖然試圖將其融入我自己的解決方案,但我遇到了一個問題。

我已經創建了一個contactdialog.js文件在我的scripts目錄:

/// <reference path="jquery-1.6.2.min.js"/> 
/// <reference path="jquery-ui-1.8.11.js"/> 
$.ajaxSetup({ cache: false }); 

$(document).ready(function() { 
    $(".openDialog").live("click", function (e) { 
     e.preventDefault(); 

     $("</div>") 
     .addClass("dialog") 
     .attr("id", $(this) 
     .attr("data-dialog-id")) 
     .appendTo("body") 
     .dialog({ 
      title: $(this).attr("data-dialog-title"), 
      close: function() { $(this).remove() }, 
      modal: true 
     }) 
     .load(this.href); 
    }); 

    $(".close").live("click", function (e) { 
     e.preventDefault(); 
     $(this).closest(".dialog").dialog("close"); 
    }); 
}); 

然後在我看來,我有靠近頂部:

<script src="~/Scripts/jquery-1.6.2.min.js" type="text/javascript"></script> 
<script src="~/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script> 
<script src="~/Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script> 
<script src="~/Scripts/contactdialog.js" type="text/javascript"></script> 

進一步回落:

@Html.ActionLink("Contact Us", "ContactUs", "Home", null, new { @class = "openDialog", data_dialog_id = "emailDialog", data_dialog_title = "Contact Us"}) 

現在我的鏈接成功地進入了javascript功能,並且好像做了add class OK。 但是,當它到達.dialog函數時,它會拋出以下異常: 「對象不支持屬性或方法對話框」

這似乎表明jquery-UI尚未加載。
但是我不明白爲什麼? 如果我在Chrome中加載頁面並檢查頁面源代碼,那麼jquery-ui-1.8.11.js的鏈接會很開放。

回答

1

一些提示:

是jQueryUI的被另一個局部視圖加載(這就是爲什麼你看到它得到開發工具加載),但調用.dialog的JS在不同的局部視圖渲染?

嘗試將jqueryUI放在主/佈局視圖中?

+0

謝謝Ashish。然而,我正在使用的視圖是_Layout.cshtml ,它是MVC 4模板的一部分。我試着將它添加到home索引視圖中,但這沒有任何區別。 –

1

我已經改變使用捆綁:

@Scripts.Render("~/bundles/jquery") 
@Scripts.Render("~/bundles/jqueryui")   
@Scripts.Render("~/bundles/contact")  

至於原因,完全超出了我目前這已經踢成生活,現在正在出現的對話框中!

+0

基於這篇文章在這裏http://stackoverflow.com/questions/9607164/request-isajaxrequest-never-returns-true-in-mvc3 我相信我在那裏有不顯眼的ajax腳本的事實可能是我的問題的原因。 –

相關問題