asp.net-mvc-3 – 在我的Controller中重构Switch语句
发布时间:2020-12-16 06:29:40 所属栏目:asp.Net 来源:网络整理
导读:我目前正在研究MVC.NET 3应用程序;我最近参加了“叔叔鲍勃”马丁的课程,它激励我(让我感到羞耻?)仔细研究我目前的开发实践,特别是我的重构习惯. 所以:我的一些路线符合: {控制器} / {行动} / {类型} type通常确定要返回的ActionResult的类型,例如: publi
我目前正在研究MVC.NET 3应用程序;我最近参加了“叔叔鲍勃”马丁的课程,它激励我(让我感到羞耻?)仔细研究我目前的开发实践,特别是我的重构习惯.
所以:我的一些路线符合: {控制器} / {行动} / {类型} type通常确定要返回的ActionResult的类型,例如: public class ExportController { public ActionResult Generate(String type,String parameters) { switch (type) { case "csv": //do something case "html": //do something else case "json": //do yet another thing } } } 有没有人成功地将“使用多态的替换开关”重构为这样的代码?这甚至是个好主意吗?很高兴听到你对这种重构的经历. 提前致谢! 解决方法
如果你想在这种情况下“用多态替换switch”,你可以创建三个重载的Generate()ActionResult方法.使用
custom model binding,使Type参数成为一个强类型的枚举,称为DataFormat(或其他).然后你有:
public ActionResult Generate(DataFormat.CSV,String parameters) { } public ActionResult Generate(DataFormat.HTML,String parameters) { } public ActionResult Generate(DataFormat.JSON,String parameters) { } 一旦达到这一点,您可以进一步重构以从控制器中重复出现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 自定义WIF请求验证器无限循环
- MVC记录范围
- asp.net-web-api – 与web api和web api 2之间的PushStream
- 实体框架 – 实体框架验证混淆 – 最大字符串长度为’128′
- asp.net-mvc – Asp.Net Mvc JQuery ajax输入参数为null
- asp.net-mvc – ASP.NET MVC内联Razor变量
- asp.net-mvc – ASP.NET MVC – 结合Json结果与ViewResult
- asp.net-core – project.json中两个依赖项部分之间有什么不
- 在ASP.NET Core Web API中为RESTful服务增加对HAL的支持
- asp.net-mvc – ASP.NET MVC:模型与MembershipUsers之间的
推荐文章
站长推荐
- 临时ASP.NET文件丢失
- asp.net-mvc – RenderPartial从另一个控制器(和
- asp.net-mvc – MVC,DbContext和多线程
- 在ASP.NET MVC4 Web应用程序上,w3wp的CPU使用率上
- asp.net-mvc – Controller如何知道MVC中DeleteC
- asp.net – 解析美国邮政地址的免费API?
- asp.net-mvc-3 – 通过URL导致控制器的DateTime导
- asp.net-mvc – 更改ASP.NET MVC筛选器中的视图
- asp.net – ASPXAUTH cookie未保存
- asp.net-membership – 使用SQL提供程序获取ASP.
热点阅读