Asp.net mvc Asp.NET5中的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

如何在Asp.net 5 mvc 6中编写一个可以处理http和ajax请求的操作


例如,我需要为每个请求类型呈现不同的视图。

是否根据请求类型提供不同的视图?如果是这样的话,这应该是可行的

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