MVC Controller返回错误请求?
我想知道是否有可能通过MVC控制器的内容返回错误的请求? 我能够做到这一点的唯一方法是throw HttpException
但是在这里我无法设置任何内容。 试过这种方法,但由于一些奇怪的原因,我总是得到回报。 是否有可能做到这一点?
public class SomeController : Controller { [HttpPost] public async Task Foo() { var response = new HttpResponseMessage(HttpStatusCode.BadRequest); response.Content = new StringContent("Naughty"); return response; } }
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "naughty");
将Http状态代码设置为错误请求,并使用Content
方法发送内容以及响应。
public class SomeController : Controller { [HttpPost] public async Task Foo() { Response.StatusCode = 400; return Content("Naughty"); } }
除了@Ekk的答案,请务必检查:
ASP.NET + Azure 400错误请求不返回JSON数据
将以下条目添加到“web.config”。
…
当然可以。
看看我的行动吧
// GET: Student/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Student student = db.Students.Find(id); if (student == null) { return HttpNotFound(); } return View(student); }
我认为这是最好的做法
-
返回
HttpStatusCodeResult(HttpStatusCode.BadRequest);
如果用户没有提供所需的值 -
返回
HttpNotFound();
如果用户提供了所需的值但没有隐藏
希望这能帮助你
您可以将错误消息传递给第二个参数,如下所示:
return new HttpResponseMessage(HttpStatusCode.BadRequest, "Your message here");