2012-07-31 85 views
0

开发一个ASP.NET MVC 3应用程序(我的第一个),并遇到了jQuery的一些麻烦,因为我从来没有用过它。我试图在模态对话框中打开特定搜索结果的详细信息。jquery ui popup MVC 3 not firing

相关剃刀代码:

@foreach (var item in Model.claims) 
    { 
     <tr> 
      <td>@Html.ActionLink(item.CLAIMMASTID.Substring(Math.Max(0,item.CLAIMMASTID.Length-1)), "ClaimDetail", new {@id=item.CLAIMMASTID}, new {@class="ClaimsDetail"})</td> 
     </tr> 
    } 

而且那么控制器设置为显示的局部视图:

public ActionResult ClaimDetail() 
    { 
     return PartialView("_ClaimDetail"); 
    } 

所有好为止,是吗?那就是我所想的。所以我的jQuery脚本看起来这样,这就是我认为问题在于:

$(function() { 
    $('#ClaimsDialog').dialog({ 
     autoOpen: false, 
     width: 800, 
     resizable: true, 
     modal: true 
    }); 
    $('.ClaimsDetail').live("click", function() { 
     var target = $(this).attr('href'); 
     $.get(target, function (result) { 
      ('#ClaimsDialog').html(result); 
      ('#ClaimsDialog').dialog({ 
      }); 
     }); 
     return false; 
    }); 
+0

http://stackoverflow.com/questions/1328723/how-to-generate-a-simple-popup-using-jquery可能会有所帮助 – Yasser 2012-07-31 13:06:59

+0

调试VS2010中的代码,并查看它到达相关行时的内容。在IE中启用调试(工具 - > internet选项 - >高级,取消选中'禁用脚本调试'),运行解决方案并在IE中打开网页。我今天不得不这样做,当调用valid()方法什么也没做,结果我错过了一个脚本引用。同样如DanielB所说,live()从1.43开始被弃用,默认情况下MVC3使用的是最低版本1.5(1.8是jQuery UI版本,而不是jQuery!) – 2012-07-31 17:26:31

回答

1

更换

$.get(target, function (result) { 
     ('#ClaimsDialog').html(result); 
     ('#ClaimsDialog').dialog({ 
     }); 
    }); 

$.get(target, function (result) { 
     $('#ClaimsDialog').html(result).dialog('open'); 
    }); 
+0

这还没有做任何事情。让我看看萤火虫告诉我什么 – 2012-07-31 13:15:10

+0

会发生什么? ajax调用是否被执行?你正在使用哪个版本的jquery? 'live()'自1.4.3开始被弃用。 – DanielB 2012-07-31 13:19:01

+0

根据萤火虫执行该调用。并右键单击“在新标签页/窗口中打开”两个工作。 1.8.11 – 2012-07-31 13:30:08