У меня есть 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?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно выделить из текста слова, в которых количество гласных звуков парноеВот что у меня вышло
Создал себе небольшую библиотеку, теперь хочу импортировать ее в проектКак?
Есть обычный таймер класса TimerКаждый раз вызывается метод для отсчёта времени
Отправляю асинхронный запрос к серверу следующим образом: