2013-10-28 37 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(如果隐藏的输入存在)并且它像一个魅力一样工作... 谢了哥们 :) –