Asp.net mvc Asp.NET5中的Ajax操作
如何在Asp.net 5 mvc 6中编写一个可以处理http和ajax请求的操作Asp.net mvc Asp.NET5中的Ajax操作,asp.net-mvc,asp.net-core,Asp.net Mvc,Asp.net Core,如何在Asp.net 5 mvc 6中编写一个可以处理http和ajax请求的操作 例如,我需要为每个请求类型呈现不同的视图。是否根据请求类型提供不同的视图?如果是这样的话,这应该是可行的 public ActionResult DoSomething() { if (Request.IsAjaxRequest()) { //Return ajax view code e.g. return PartialView("_ajax"); } //Re
例如,我需要为每个请求类型呈现不同的视图。是否根据请求类型提供不同的视图?如果是这样的话,这应该是可行的
public ActionResult DoSomething()
{
if (Request.IsAjaxRequest())
{
//Return ajax view code e.g. return PartialView("_ajax");
}
//Return non-ajax view code e.g. return View("nonajax");
}
ASP.NET 5 MVC 6中删除了
HttpRequest
上的IsAjaxRequest
属性。我编写了一个扩展方法来重现这个特性(@JoeAudette链接到我上面项目中的代码)
//
///扩展方法。
///
公共静态类HttpRequestExtensions
{
private const string RequestedWithHeader=“X-Requested-With”;
私有常量字符串XmlHttpRequest=“XmlHttpRequest”;
///
///确定指定的HTTP请求是否为AJAX请求。
///
///HTTP请求。
///如果指定的HTTP请求是AJAX请求,则为true;否则为false。
///参数为空。
公共静态bool请求(此HttpRequest请求)
{
if(请求==null)
{
抛出新ArgumentNullException(nameof(request));
}
if(request.Headers!=null)
{
return request.Headers[RequestedWithHeader]==XmlHttpRequest;
}
返回false;
}
}
如果您的问题是如何检测ajax请求,那么github上的这段代码有一个IsAjaxRequest扩展方法,可以确保您的请求是正确的。谢谢。Asp.NET5没有“IsAjaxRequest”功能。
/// <summary>
/// <see cref="HttpRequest"/> extension methods.
/// </summary>
public static class HttpRequestExtensions
{
private const string RequestedWithHeader = "X-Requested-With";
private const string XmlHttpRequest = "XMLHttpRequest";
/// <summary>
/// Determines whether the specified HTTP request is an AJAX request.
/// </summary>
/// <param name="request">The HTTP request.</param>
/// <returns><c>true</c> if the specified HTTP request is an AJAX request; otherwise, <c>false</c>.</returns>
/// <exception cref="ArgumentNullException">The <paramref name="request"/> parameter is <c>null</c>.</exception>
public static bool IsAjaxRequest(this HttpRequest request)
{
if (request == null)
{
throw new ArgumentNullException(nameof(request));
}
if (request.Headers != null)
{
return request.Headers[RequestedWithHeader] == XmlHttpRequest;
}
return false;
}
}