0

你能澄清一下从局部视图返回原始数据在实践中是如何工作的吗?

@Html.Partial("_MyPartialView") 始终返回原始数据,以便我可以在页面源中看到 HTML。

但是,如果我试图通过 JQuery AJAX 调用来做同样的事情,我将无法在页面源代码中看到 HTML

$.ajax({
url: '@Url.Action("GetData", "Home")',
data: { Period: period, FromDate: fromDate, ToDate: toDate },
type: 'GET',
success: function (data) {
$("#someDiv").html(data);
}
}); 

这两个示例都有效,但不同之处在于我无法再通过 AJAX 看到 HTML 输出。这是设计使然吗?真的很重要吗?或者我可以通过 AJAX 在输出中生成可见的 HTML 吗?

4

2 回答 2

2

页面源是您在加载的第一页看到的内容。Ajax 动态加载 HTML,您不会在页面源代码中看到它,但它实际上已加载并附加到您的 DOM,您可以使用浏览器中的 HTML 检查工具检查动态 html

于 2013-10-21T13:20:59.027 回答
2

区别在于 HTTP 调用的数量。使用 PartialView,您可以在呈现主页面期间从此视图中获取 HTML。并且 HTML 在您调用 Html.Partial 的地方返回。在使用 AJAX 的第二个示例中,您将返回主页的 HTML 代码,而没有来自 PartialView 的代码。然后在您的页面加载后,它会发起另一个 HTTP 请求以从 PartialView 获取标记。如果您不打算从 JavaScript 以编程方式更新 #someDiv 的内容,我建议您使用第一种方法,因为它会产生更少的 HTTP 请求和更少的服务器流量,客户端将更快地检索整个页面。

于 2013-10-21T13:23:19.067 回答