'HttpRequest' не содержит определения для 'CreateResponse' и нет доступного метода расширения - PullRequest
0 голосов
/ 03 августа 2020

Ниже мой код. Похоже, HttpRequest не смог получить доступ к CreateResponse. Пожалуйста, помогите.

using System;
using System.Net;
using System.Net.Http;
using Microsoft.AspNetCore.Mvc;

namespace Abc.Controllers
{
    [ApiController]
    [Route("[controller]")]

    public class PaymentController : Controller
    {
        public HttpResponseMessage Post()
        {
            // ... do the job

            // now redirect
            var response = Request.CreateResponse(HttpStatusCode.Moved);
            response.Headers.Location = new Uri("http://www.abcmvc.com");
            return response;
        }
    }
}

1 Ответ

0 голосов
/ 04 августа 2020

HttpResponseMessage и Request.CreateResponse - это устаревшие способы создания HTTP-ответа для более старых ASP. NET дней, которые не применяются к ASP. NET Core. Если у вас есть приложение ASP. NET Core, вы должны использовать механизмы ASP. NET Core, в частности результаты действий, для получения ответов.

В вашем случае, если вы хотите выполнить перенаправление в другое место, тогда вы можете сделать это следующим образом в ASP. NET Core:

public IActionResult Post()
{
    // ... do the job

    return RedirectPermanent("http://www.abcmvc.com");
}

Здесь используется служебный метод RedirectPermanent для создания RedirectResult.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...