none
asp.net Mvc 问一下,页面间传值和迁移可以封装吗 RRS feed

答案

  • 你希望实现什么级别的封装?一般来说,Controller提供数据给View都通过ViewData,而View传递数据到下一个Controller则通过URL和Form。这样的划分已经十分明确,再做封装一般都在Model的层面做,Controller应该是尽可能轻量级的。
    Microsoft ASP.NET MVP
    • 已标记为答案 KeFang Chen 2009年11月12日 5:41
    2009年11月6日 15:49
    版主
  • 你好,
    目前MVC传值主要有一下几种方式:
    1.ViewData,用于将值传递到与当前action method相对应的页面,无法进行跨页面传值。
    2.TempData,可以用于两个页面之间传值,比如说在A action method中定义了一个TempData[“test”]="TEST",当传递到与A对应的页面后,A的页面通过链接转到B页面,这样在B页面中以及是可以得到刚才定义的那个变量的。但仅仅局限于这两个前后相连的页面。
    3.querystring,就是在添加了相应的routing规则后,通过link这样的方式,值作为参数传到相应的action method。这个也可以用于跨页面传值。
    4.session,在MVC中还可以使用,当然可以跨页面传值。

    关于这些传值,可以参考下面链接。

    对于你说的封装,个人认为在传值方式上似乎没有封装的办法了。但是如果你是指封装传递的值,是可以进行封装的。
    http://hi.baidu.com/djcm99/blog/item/3c4a5b7ff788860029388a29.html
    Microsoft Online Community Support
    • 已标记为答案 KeFang Chen 2009年11月12日 5:41
    2009年11月9日 6:24

全部回复

  • 你希望实现什么级别的封装?一般来说,Controller提供数据给View都通过ViewData,而View传递数据到下一个Controller则通过URL和Form。这样的划分已经十分明确,再做封装一般都在Model的层面做,Controller应该是尽可能轻量级的。
    Microsoft ASP.NET MVP
    • 已标记为答案 KeFang Chen 2009年11月12日 5:41
    2009年11月6日 15:49
    版主
  • 你好,
    目前MVC传值主要有一下几种方式:
    1.ViewData,用于将值传递到与当前action method相对应的页面,无法进行跨页面传值。
    2.TempData,可以用于两个页面之间传值,比如说在A action method中定义了一个TempData[“test”]="TEST",当传递到与A对应的页面后,A的页面通过链接转到B页面,这样在B页面中以及是可以得到刚才定义的那个变量的。但仅仅局限于这两个前后相连的页面。
    3.querystring,就是在添加了相应的routing规则后,通过link这样的方式,值作为参数传到相应的action method。这个也可以用于跨页面传值。
    4.session,在MVC中还可以使用,当然可以跨页面传值。

    关于这些传值,可以参考下面链接。

    对于你说的封装,个人认为在传值方式上似乎没有封装的办法了。但是如果你是指封装传递的值,是可以进行封装的。
    http://hi.baidu.com/djcm99/blog/item/3c4a5b7ff788860029388a29.html
    Microsoft Online Community Support
    • 已标记为答案 KeFang Chen 2009年11月12日 5:41
    2009年11月9日 6:24