2013-10-21 16 views
0

您能澄清一点:从实际部分视图返回原始数据是如何工作的?如何在ASP.NET MVC 4中将原始数据作为部分视图返回:JQuery Ajax vs Html.Partial

@ 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); 
} 
}); 

两个例子都工作,但不同的是,我不能看到HTML输出了通过AJAX。这是通过设计,它真的很重要吗?或者我可以通过AJAX在输出中生成可见的HTML?

+0

你能显示你的动作的代码? – Sarcastic

+0

也许你应该定义请求类型?键入:'text/html'。 – alexmac

回答

2

页面源代码是您在第一页加载时看到的内容。 Ajax的负载动态HTML,你不会看到它在网页源代码,但它的实际装载并连接到您的DOM,你可以在浏览器中

+0

谢谢,这是我正在寻找的答案。 – user405723

+0

你知道我是否可以使用Visual Studio 2012中的Page inspector检查动态html吗?我很快试过,但看不到任何方式看到div内的动态html。我肯定会需要一个HTML检查工具。任何Visual Studio开发人员的建议? – user405723

+0

@ user405723:我建议你应该在浏览器中运行你的HTML,因为浏览器有更好的工具来处理HTML。作为Visual Studio开发人员,您可以轻松运行内置的Web服务器来为您的HTML页面提供服务。 –

2

所不同的是在数量上使用HTML检查工具检查动态HTML的HTTP调用。 使用PartialView,您可以在渲染主页期间从此视图获取HTML。而HTML会在您称为Html.Partial的地方返回。 在使用AJAX的第二个示例中,您将返回主页面的HTML代码,而不使用PartialView中的代码。然后,在加载页面后,它会启动另一个HTTP请求以从PartialView获取标记。 如果您不打算通过JavaScript以编程方式更新#someDiv的内容,我会建议采用第一种方法,因为它会在您的服务器上产生较少的HTTP请求和较少的流量,客户端将更快地检索整个页面。

相关问题