我有一个主网页(“基本页面”),它对服务器进行 ajax 调用(使用 jQuery)。服务器端页面(“Ajax 页面”)是一个 ASP.NET 网络表单(此处未使用 MVC)。因为(在这种情况下)我使用 GridView 在 ajax 响应中呈现数据,所以我必须包含
请您参考如下方法:
您可以将 GridView 添加到 Web 用户控件,然后将其呈现为这样的字符串:
public static string ExecuteToString(this Control control)
{
Page page = new Page();
page.Controls.Add(control);
StringBuilder sb = new StringBuilder();
using (StringWriter writer = new StringWriter(sb))
{
HttpContext.Current.Server.Execute(page, writer, false);
}
return sb.ToString();
}
这意味着您不需要将 ajax 请求指向页面。您可以使用网络服务。查询特定方法,然后动态加载用户控件,将其呈现为字符串并返回 HTML。因为您将 HTML 和代码放在用户控件中,所以您无需担心剥离表单标签,您仍然可以像在页面上一样使用所有 asp 控件。
我不知道使用这种方法的性能成本,但我已经使用了一段时间,对我来说似乎没问题。




