Asp.Net Mvc,控制器下的行为接收对象的问题

卷猫 2016-08-29 09:39:17
比如:
现在有一个person对象:有Name Age Sex等属性

视图页:
<input type="text" name="Name"/>
<input type="text" name="Age"/>
<input type="text" name="Sex"/>
控制器:
第一种写法
public ActionResult Add()
{
  string Name=Request["Name"];
  string Sex=Request["Sex"];
.....
}
第二种写法
public ActionResult Add(Person person)
{
..........
}
------------------------------------------------------------------------
问题:
接收对象到底用自动装配比较好,还是自己用request接收?
个人用的一直是自动装配,方便 提高了开发效率
但是今天在码云看了很多人的代码 都还是webform下request接收的方式?
是不是自动装配有什么缺点呢?
...全文
424 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Polymorphic_type 2016-09-02
  • 打赏
  • 举报
回复
自动装配能显著减少配置的数量。不过,采用bean模板也可以达到同样的目的。 自动装配可以使配置与java代码同步更新。例如,如果你需要给一个java类增加一个依赖,那么该依赖将被自动实现而不需要修改配置。因此强烈推荐在开发过程中采用自动装配,而在系统趋于稳定的时候改为显式装配的方式。 尽管自动装配比显式装配更神奇,但是,Spring会尽量避免在装配不明确的时候进行猜测,因为装配不明确可能出现难以预料的结果,而且Spring所管理的对象之间的关联关系也不再能清晰的进行文档化。 对于那些根据Spring配置文件生成文档的工具来说,自动装配将会使这些工具没法生成依赖信息。 自动装配可以减轻配置的工作量,但同时使得配置文件的可读性变得很差,因为你不可能从配置文件 中获知这些对象之间得依赖关系,从而维护困难! response的方法 这里最主要用到的方法是response.write(string)和response.redirect(url)。 response.write(string)的作用是从服务器端向客户端返回数据(写数据) response.redirec("url")的作用是在服务器端重定向于另一个网页。 其中,它们的优缺点如下: 1、这个方法是对post方法递交的表单进行获值的方法,对于post传值的方法传的参数值不会在url中用明文方式显示。 2、这个方法是对get方法递交的表单进行获值的方法,对于get传值方法的运用的缺点:(1)、明码显示,(2)、长度受限;优点:(1)、可以直接定义一个url就可以传值;作用:(1)、用来做新闻的时候套用模版方便
insus 2016-08-29
  • 打赏
  • 举报
回复
xiaoqiu_net 2016-08-29
  • 打赏
  • 举报
回复
参数多了你一个个Request够你受的了。 可以把前台对象封装成json字符串,然后post过来,后台反序列化为指定对象。效率更高把。 http://blog.csdn.net/q646926099/article/details/52171048
卷猫 2016-08-29
  • 打赏
  • 举报
回复
引用 2 楼 insus 的回复:
参数做成model: http://www.cnblogs.com/insus/p/4078122.html
你这个跟我上面说的是一样的。 我自己就是这么做的,只是今天在github 和码云 看人家代码的时候 发现他们都是一个个request[]接收的。 mvc自动装配说到底就是反射,我在想会不会影响效率问题。但这一点点根本影响不了性能吧。 不知道他们为什么都用request[]接收参数
卷猫 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 q646926099 的回复:
参数多了你一个个Request够你受的了。 可以把前台对象封装成json字符串,然后post过来,后台反序列化为指定对象。效率更高把。 http://blog.csdn.net/q646926099/article/details/52171048
换言之,不管ajax 还是表单。只要你传到服务器的参数名和你的model属性名一致,就会自动装配 懂了吗 小朋友。 我这问题的意思你都没搞明白
卷猫 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 q646926099 的回复:
参数多了你一个个Request够你受的了。 可以把前台对象封装成json字符串,然后post过来,后台反序列化为指定对象。效率更高把。 http://blog.csdn.net/q646926099/article/details/52171048
前台json只要和你的model属性名相同,就可以自动装配。你这是脱裤子放屁多此一举。

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧