当前位置:  开发笔记 > 后端 > 正文

ActionResult返回类型有什么意义?

如何解决《ActionResult返回类型有什么意义?》经验,为你挑选了1个好方法。

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



1> Michael Stum..:

返回ActionResult而不是"只做ActionResult正在做的事情"(即直接使用Response.Redirect或尝试通过Response OutputStream直接渲染View)给你一个非常好的优势:单元测试非常简单,特别是因为您通常不需要Web服务器来对MVC项目进行单元测试.

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

如果你这样做

return Redirect(newUrl);

在您的控制器中,您的单元测试现在可以

验证返回值是否为"RedirectResult"类型

通过在将其转换为RedirectResult后检查result.Url,查看重定向到的URL

所有这些都无需启动IIS或尝试"clevery"拦截Response.Redirect调用

在一天结束时,RedirectResult在其ExecuteResult函数中调用Response.Redirect,但您的Controller Unit Test位于其前面

附录2:当我在上面时,这是一个自定义ActionResult的示例:

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

这只是为了表明他们不是"黑魔法".它们实际上非常简单:您的Controller返回一个Action Result,MVC Runtime最终会调用它上面的ExecuteResult函数,传入一个ActionContext可以与之交互的ControllerContext.重点是将MVC的各个部分分开,使代码可重用,并使单元测试更容易,或简而言之:给出一个非常干净的框架.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有