AspnetCore RazorPage返回原始字符串吗?

时间:2019-04-25 16:05:53

标签: asp.net-core razor-pages

RazorPage通常返回void,任务,IActionResult,例如

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

也有可能让处理程序返回Json,例如

public Task<JsonResult> OnGetAlso() { }

但是在某些情况下,我希望处理程序返回原始字符串,但是我找不到一种简单的方法来实现此目的。

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

但是我总是会出错不支持的处理程序方法返回类型。这可能吗?谢谢

3 个答案:

答案 0 :(得分:1)

使用ContentResult返回string内容:

public IActionResult OnGetSomeString()
{
    return Content("something");
}

答案 1 :(得分:0)

您需要包括TextOutputFormatter

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

但是,默认情况下实际上应该包含它,这有点奇怪。尽管如此,为了返回字符串,您仍然需要TextOutputFormatter,因此,如果返回的字符串不起作用,则它一定不能存在。也许您明确删除了它?

答案 2 :(得分:0)

@Chris Pratt感谢您的帮助。这似乎可行

    public IActionResult OnGetTest()
    {
        return new ObjectResult("test");
    }