AspnetCore RazorPage вернуть необработанную строку? - PullRequest
0 голосов
/ 25 апреля 2019

RazorPage обычно возвращает void, Task, IActionResult, например,

public Task OnGet() { }
public Task<IActionResult> OnGet() { }

Также возможно иметь обработчик, возвращающий Json, например

public Task<JsonResult> OnGetAlso() { }

Но есть сценарии, в которых я хочуобработчик для возврата необработанной строки, но я не смог найти простой способ сделать это.

public Task<string> OnGetSomeString() 
{ return "something"; }

Но я всегда получаю ошибки. Неподдерживаемый тип возвращаемого метода обработчика.Это возможно?Спасибо

Ответы [ 3 ]

1 голос
/ 26 апреля 2019

Используйте ContentResult для возврата string содержимого:

public IActionResult OnGetSomeString()
{
    return Content("something");
}
0 голосов
/ 25 апреля 2019

@ Крис Пратт Спасибо за вашу помощь.Это похоже на работу

    public IActionResult OnGetTest()
    {
        return new ObjectResult("test");
    }
0 голосов
/ 25 апреля 2019

Вам необходимо включить TextOutputFormatter:

services.AddMvc(options =>
{
    options.OutputFormatters.Add(new TextOutputFormatter());
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

Однако это должно быть включено по умолчанию, что довольно странно.Тем не менее, чтобы вернуть строку, вам нужно TextOutputFormatter, поэтому, если возвращение строки не работает, то ее там быть не должно.Возможно, вы явно удалили его?

...