gpt4 book ai didi

asp.net-mvc - ActionResult 返回类型有什么意义?

转载 作者:行者123 更新时间:2023-12-03 20:19:54 25 4
gpt4 key购买 nike

返回 ActionResult 的操作有什么意义?

最佳答案

返回一个 ActionResult 而不是“只做 ActionResult 正在做的任何事情”(即直接使用 Response.Redirect 或尝试直接通过 Response OutputStream 渲染出一个 View )给你一个非常好的优势:单元测试真的很容易,尤其是因为您通常不需要 Web 服务器来对 MVC 项目进行单元测试。

附录:作为重定向的示例:

如果你这样做

return Redirect(newUrl);

在您的 Controller 中,您的单元测试现在可以
  • 验证返回值是否为“RedirectResult”类型
  • 在将其转换为 RedirectResult 后,通过检查 result.Url 查看正在重定向到的 URL
  • 无需启动 IIS 或尝试“巧妙”拦截 Response.Redirect 调用
  • 归根结底,RedirectResult 在它的 ExecuteResult 函数中调用 Response.Redirect,但您的 Controller 单元测试位于
  • 前面。

    附录 2:当我在做的时候,这里有一个自定义 ActionResult 的例子:

    http://www.stum.de/2008/10/22/permanentredirectresult/

    这只是为了表明他们不是“黑魔法”。它们实际上非常简单:您的 Controller 返回一个 Action Result,MVC 运行时最终会在其上调用 ExecuteResult 函数,传入一个您的 ActionResult 可以与之交互的 ControllerContext。重点再次是分离 M-V-C 的各个部分,使代码可重用,并使单元测试更容易,或者简而言之:提供一个非常干净的框架。

    关于asp.net-mvc - ActionResult 返回类型有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/289171/

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