Как добавить, чтобы возвращалась VIew?

89
03 февраля 2022, 01:40

У меня есть View для каждого метода, я сделал чтобы в хедере задавался параметр для возвращения, а как сделать, чтобы была VIEW?

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions;
using System;
namespace ProjectAboutProjects
{
    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
    public sealed class FormatReponseFilterAttribute : Attribute, IActionFilter
    {
        private enum FormatResponseType { Json, Xml, View, Unknown }
        private FormatResponseType _requestedType { get; set; }
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            var _result = (ObjectResult) filterContext.Result;
            switch (_requestedType)
            {
                //https://localhost:44342/api/Post/Search?id=qwe
                case FormatResponseType.Json:
                var data = new { Data = _result.Value };
                filterContext.Result = new JsonResult(data);
                break;
                case FormatResponseType.Xml:
                filterContext.Result = new XmlResult(_result.Value);
                break;
                case FormatResponseType.View:
                //filterContext.Result = new ViewResult(_result.Value);// не работает так(
                break;
                case FormatResponseType.Unknown:
                default:
                throw new InvalidOperationException("Uknown Content Type ain Accept Header");
            }
        }
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var _contentType = filterContext.HttpContext.Request.Headers["Accept"];
            switch (_contentType)
            {
                case string e when (e.Contains("/xml")):
                _requestedType = FormatResponseType.Xml;
                break;
                case string e when (e.Contains("/html")):
                _requestedType = FormatResponseType.View;
                break;
                case string s when (s.Contains("application/json")):
                default:
                _requestedType = FormatResponseType.Json;
                break;
            }
        }
    }
}

Что должен возвращать filterContext.Result = new ViewResult(_result.Value); в данной строчке, чтобы указать на View?

READ ALSO
Не работает сравнения char со string

Не работает сравнения char со string

Нужно выделить из текста слова, в которых количество гласных звуков парноеВот что у меня вышло

89
Как импортировать свою библиотеку Visual Studio

Как импортировать свою библиотеку Visual Studio

Создал себе небольшую библиотеку, теперь хочу импортировать ее в проектКак?

209
Проблема с потоками wpf

Проблема с потоками wpf

Есть обычный таймер класса TimerКаждый раз вызывается метод для отсчёта времени

83
Отобразить прогресс запроса к серверу C#

Отобразить прогресс запроса к серверу C#

Отправляю асинхронный запрос к серверу следующим образом:

81