В моем приложении я использую pjax для частичного ответа на странице. Насколько я понимаю, pjax нужно же URL для частичного, а также полный ответ, например, следующий URL для обслуживания списка пользователей:Условный ответ с ASP.NET Webforms
Полный ответ: // youwebsite/пользователей
Частичный ответ: // youwebsite/users (вместе с заголовком X-PJAX)
Если URL-адрес запрашивается с помощью частичного ответа заголовка X-PJAX, то есть только список пользователей, тогда как если такого заголовка не требуется, то от сервера требуется полный ответ, т. е. полный (заголовок, тело, нижний колонтитул и т. д. вместе с списком пользователей.)
Для этого я сделал обработчик http для обработки такого условного ответа. Я сделал свой TestHandler.ashx, чтобы сделать это:
<%@ WebHandler Language="C#" Class="TestHandler" %>
#region Using Directives
using System;
using System.Web;
using System.Web.Compilation;
using System.Web.UI;
#endregion
public class TestHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.Headers["X-PJAX"] != null)
{
Type page_type = BuildManager.GetCompiledType("~/Templates/users.aspx");
Page page = (Page)Activator.CreateInstance(page_type);
page.ProcessRequest(context);
}
else
{
Type page_type = BuildManager.GetCompiledType("~/users.aspx");
Page page = (Page)Activator.CreateInstance(page_type);
page.ProcessRequest(context);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
Приведенный выше код возвращает ответ со страницы/users.aspx Шаблоны, если заголовок X-PJAX присутствует в запросе. Страница Templates/users.aspx содержит код html для списка пользователей. Если этого заголовка нет, нам нужно дать полный ответ и который указан на странице ~/users.aspx.
Мои вопросы:
мой подход правильно обрабатывать условную реакцию на основе заголовка. Перед реализацией pjax у меня была только одна страница «~/users.aspx», чтобы дать полный ответ. Для реализации pjax I перенаправили запрос на пользовательскую страницу TestHandler по маршрутизации, так что TestHandler может решить, какой ответ необходим.
Можем ли мы дать частично ответ только с страницы «~/users.aspx» без внедрения httphandler?
Как вы подходите с помощью веб-форм ASP.NET с условными ответами?
Какой шаблон бритвы? Какой макет? Этот вопрос не упоминает об этом и, в частности, говорит о веб-формах. – mason
Вы правы. Виноват. – sanatgersappa