使用jquery渲染局部视图中的所有网站加载

时间:2012-07-03 00:43:55

标签: jquery asp.net-mvc-3

当我使用此jquery加载部分视图时:

$.get('@Url.Action( "List" , "Menu" )', function(data) {
    $('#treeviewdiv div').replaceWith(data);
});​

所有网站都在我的网站内再次加载。我指的是另一个头标,另一个身体标签。

我使用它并且它也不起作用:

$.get('@Url.Action( "List" , "Menu" ) #container', function(data) {
    $('#treeviewdiv div').replaceWith(data);
});​

...而容器是我的局部视图中的div标签。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

这通常表示操作返回完整视图而不是部分视图。好消息是,这可以通过几种不同的选择来解决。

1使操作返回局部视图:

public PartialViewResult Menu(){
  return PartialView();
}

2如果这是一个可以通过ajax或标准方法调用的动作,基于ajax请求切换可能会有所帮助:

public ActionResult Menu(){
  return Request.IsAjaxRequest() ? PartialView() : View();
}

3另一种选择是让视图为您处理(您可以在特定视图或ViewStart.cshtml文件中执行此操作):

@{
  Layout = !IsAjax ? "~/Views/Shared/_Layout.cshtml" : null;
}