gpt4 book ai didi

c# - 如何在 MVC3 中一起返回状态代码、状态描述和文本?

转载 作者:可可西里 更新时间:2023-11-01 07:52:51 25 4
gpt4 key购买 nike

我想从我的 MVC3 Controller 操作返回 HTTP 403,将“状态描述”设置为某个特定的字符串,并在结果内容中返回该字符串,以便它在浏览器中可见。

我可以返回ContentResult来指定内容,但不是状态码(比如403)也不是状态描述。我可以使用 HttpStatusCodeResult 指定状态代码和状态描述,但不指定结果内容。

如何制作包含所有这三者的操作结果?

最佳答案

通常您会看到这是通过设置响应代码然后返回常规 ActionResult 来完成的

public ActionResult Foo() 
{
Response.StatusCode = 403;
Response.StatusDescription = "Some custom message";

return View(); // or Content(), Json(), etc
}

如果您真的需要它作为 ActionResult,您可以创建自己的。

例子:

public class HttpStatusContentResult : ActionResult
{
private string _content;
private HttpStatusCode _statusCode;
private string _statusDescription;

public HttpStatusContentResult(string content,
HttpStatusCode statusCode = HttpStatusCode.OK,
string statusDescription = null)
{
_content = content;
_statusCode = statusCode;
_statusDescription = statusDescription;
}

public override void ExecuteResult(ControllerContext context)
{
var response = context.HttpContext.Response;
response.StatusCode = (int) _statusCode;
if (_statusDescription != null)
{
response.StatusDescription = _statusDescription;
}

if (_content != null)
{
context.HttpContext.Response.Write(_content);
}
}
}

关于c# - 如何在 MVC3 中一起返回状态代码、状态描述和文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com