2013-10-28 36 views
0

我有下面這段代碼在我看來:內查看運行腳本文件加載後 - ASP.NET MVC3

@if (TempData["Success"] != null) 
    { 
    if ((bool)TempData["Success"] == true) 
     { 
     <script type="text/javascript">@Html.Raw("ShowUIModal('Success','Message Successfully Sent!');") </script> 
     } 
    else 
     { 
     <script type="text/javascript">@Html.Raw("ShowUIModal('Message sending Failed!!', 'Please try again!');") </script> 
     } 
    } 

在Chrome控制檯,它記錄 - 「對象的翻譯:有沒有方法‘模式’ 」。我知道它的存在,因爲jQuery的ui.js未加載執行上述代碼的時間,因爲當我查看加載後單獨運行這段代碼,它工作正常:

ShowUIModal('Message sending Failed!!', 'Please try again!'); // it works fine after page loads. 

所以,我怎麼能執行它在所有的js文件加載後?非常感謝,我很感激任何幫助。

回答

2

你可以嘗試做的是,有一個隱藏的輸入和它的數據成功屬性由TempData對象設置,然後,你可以通過DOM上的Jquery或JavaScript檢索它,並顯示你的Modal Popup。

<input type = "hidden" id="Status" data-success = @TempData["Success"]></input> 

,並在你的頁面的頭部分的腳本標籤,

<script> 
$(document).ready(function(){ 
var status = $('#Status').attr('data-success'); 
if(status == true){ 
// Your - ShowUIModal() here 
} 
else 
{ 
// Your else code here 
} 
}); 
</script> 
+0

感謝的伎倆,修改一點點,完成任務! 它導致模態每次都彈出,因此我將它封裝在一個函數中,所以變量保持在閉包狀態並且檢查'status.length'是否大於0(如果隱藏的輸入存在)並且它像一個魅力一樣工作... 謝了哥們 :) –