ASP.NET Web Api возвращает содержимое HTML [дубликат]

В некоторых случаях, т. е. когда (если) вы просто используете float для подачи элементов на одну и ту же «строку», вы можете использовать

display: inline-block;

вместо

float: left;

В противном случае использование элемента clear в конце работает, даже если оно может пойти против зерна, чтобы потребовался элемент для выполнения работы CSS.

83
задан Andrei 27 April 2016 в 11:39
поделиться

2 ответа

Возвращает HTML-строку

Возвращает содержимое строки с типом носителя text/html:

public HttpResponseMessage Get()
{
    var response = new HttpResponseMessage();
    response.Content = new StringContent("<html><body>Hello World</body></html>");
    response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
    return response;
}

ASP.NET Core

Самый простой способ - используйте фильтр «Производит»:

[Produces("text/html")]
public string Get() 
{
    return "<html><body>Hello World</body></html>";
}

Более подробную информацию об атрибуте [Produces] можно найти здесь здесь .

185
ответ дан Andrei 19 August 2018 в 09:15
поделиться
  • 1
    Большое спасибо. Вы спасли мое время, чтобы найти это. :) :) – Nimit Joshi 25 March 2015 в 11:10
  • 2
    Большое спасибо .. Это сработало :) – DfrDkn 1 December 2015 в 11:41
  • 3
    Не поддерживается в ASP.NET MVC Core HttpResponseMessage – Parshuram Kalvikatte 23 November 2016 в 11:45
  • 4
    @Паршурам. Я только что проверил ваше заявление. Я могу использовать HttpResponseMessage в ядре ASP.NET. Он расположен под System.Net.Http. – Andrei 23 November 2016 в 14:08
  • 5
    Когда я это делаю с помощью ASP.NET MVC 5, я получаю ответ. Я не получаю ни одного из содержимого HTML. Все, что я получаю, это «StatusCode: 200, ReasonPhrase:« ОК », Версия: 1.1, Содержимое: System.Net.Http.StringContent, Заголовки: {Content-Type: text / html} & quot; – guyfromfargo 3 October 2017 в 19:54

Начиная с AspNetCore 2.0, в этом случае рекомендуется использовать ContentResult вместо атрибута Produce. См. https://github.com/aspnet/Mvc/issues/6657#issuecomment-322586885

Это не зависит от сериализации и согласования содержимого.

[HttpGet]
public ContentResult Index() {
    return new ContentResult {
        ContentType = "text/html",
        StatusCode = (int)HttpStatusCode.OK,
        Content = "<html><body>Hello World</body></html>"
    };
}
15
ответ дан KTCO 19 August 2018 в 09:15
поделиться
  • 1
    Я не мог получить «производит». ответ на работу вообще на 2.0, это, однако, прекрасно работает. – philw 1 November 2017 в 14:09
  • 2
    Если вы хотите показать html из файла, просто добавьте & quot; var content = System.IO.File.ReadAllText (& quot; index.html & quot;); & quot; – Pavel Samoylenko 25 February 2018 в 16:13
  • 3
    Да, если вы используете ASP.NET Core 2.0, это путь! – James Scott 3 May 2018 в 14:19
Другие вопросы по тегам:

Похожие вопросы: