我在这里有一件简单的事情:两个div和两个调用以加载局部声(以PartialView作为结果的控制器动作).
我正在处理两个控制器操作:Index和ItemDetail. jQuery加载在Index操作返回的视图中起作用,但不适用于ItemDetail.
这些项目在同一控制器中,您可以按以下方式在浏览器中访问它们:
http://[site]/items
http://[site]/items/itemdetail
为了找出问题所在,我将Index和ItemDetail设置为返回具有相同语法的视图:
<div id="deptTickets">Loading department tickets...</div>
<div id="recentTickets">Loading recent tickets...</div>
<script type="text/javascript" language="javascript">
$("#deptTickets").load("items/DepartmentTickets");
$("#recentTickets").load("items/RecentTickets");
</script>
.load方法触发并加载索引的适当部分视图,但不加载ItemDetail.
我认为唯一不同的是路线.实际上,如果我在索引中返回“详细”视图,它将正确呈现并运行jQuery,并且如果我在itemDetail的控制器操作中返回“索引”视图,它将呈现页面,但从不执行jQuery.
有任何想法吗?
最佳答案
您需要使URL相对于站点根目录,否则您的路由将不正确.最好使用Url帮助程序.
<script type="text/javascript" language="javascript">
$("#deptTickets").load("<%= Url.Action( "DepartmentTickets","Items" ) %>");
$("#recentTickets").load("<%= Url.Action( "RecentTickets","Items" ) %>");
</script>