我在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"
})
它起作用了
答案 0 :(得分:2)
我需要更多关于究竟在哪里做的信息,但我怀疑以下是你问题的根源。
当您使用Html.RenderAction时,您的部分视图是发送到浏览器的初始包的一部分。然后你的javascript代码(在布局页面中)能够在document.ready事件上处理它。事情按照他们的意愿运作。
当您使用Ajax.ActionLink时,您的页面上只有一个标记,单击该标记时将加载您的部分视图。您是否已在布局页面中设置代码以仅在ActionLink完成后运行 ?如果您的布局页面代码在文档准备就绪时运行,则部分视图尚未存在(因为它仅在您单击链接后才加载)。
ActionLink操作不会自动加载您的内容,这正是我想说的。所以它与Html.RenderAction函数无法真正比较。