0

我对 MVC3 Razor 中的部分视图有疑问。当我通常渲染部分视图(使用 Html.RenderAction)时,jQuery 可以工作,但是当我在特定的 div 中加载视图时,使用 ajax.actionlink 用于该部分视图的 jQuery 不起作用。jQuery 代码在我的布局页面中。

有谁知道是什么问题?

html 在部分视图中,脚本在布局页面中。

@{Html.RenderAction("action", "Controler"); }当我使用jquery加载部分视图时,但是当我加载它时:

@Ajax.ActionLink("name", "action", "controler", new AjaxOptions
                  {

                      OnComplete = "",
                      InsertionMode = InsertionMode.Replace,
                      UpdateTargetId = "ModeliSadrzaj"
                  })

它不起作用

4

1 回答 1

2

我需要更多关于在哪里做什么的信息,但我怀疑以下是你问题的根源。

当您使用 Html.RenderAction 时,您的局部视图是发送到浏览器的初始包的一部分。然后,您的 javascript 代码(在布局页面中)能够在 document.ready 事件上对其进行处理。事情按他们应该的方式运作。

当您使用 Ajax.ActionLink 时,您的页面上只有一个标签,单击该标签将加载您的局部视图。您是否已将布局页面中的代码设置为仅在 ActionLink 完成后运行?如果您的布局页面代码在文档就绪时运行,则部分视图尚不存在(因为它仅在您单击链接后才加载)。

ActionLink 操作不会自动加载您的内容,这就是我想说的。所以它与 Html.RenderAction 函数并没有真正的可比性。

于 2013-11-13T09:51:50.327 回答