1

当我用这个 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 标签。

我该如何解决?

4

1 回答 1

1

这通常表示操作返回完整视图而不是部分视图。好消息是这可以通过几个不同的选项简单地解决。

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;
}
于 2012-07-03T01:05:00.943 回答