none
请问 MVC3 的 Controller 类如何扩展?我想添加属性,或方法,怎么搞? RRS feed

  • 问题

  • 部分类?继承?    实在不想用继承,麻烦。

     

     

    我想在 XxxxController 里能有这样的属性:

     

    this.CurrentUser.UserId;

     

    很明显,需要在 Controller 基类扩充属性啦。。。

    • 已编辑 Dun Eysa 2011年6月27日 6:44 描述不够完全
    2011年6月27日 6:39

答案

  • 部分类?继承?    实在不想用继承,麻烦。

    我想在 XxxxController 里能有这样的属性:

    this.CurrentUser.UserId;

    很明显,需要在 Controller 基类扩充属性啦。。。


    楼主你好:)

    就我知道而言,目前C#版本尚未支持扩展属性,你可以尝试对Controller类进行方法的扩展。

    namespace MVC3Demo.Controllers
    {
        public static class MyController
        {
            public static string GetLocalUserId(this Controller con)
            {
                return "";
            }
        }
        public class Default1Controller : Controller
        {
            //
            // GET: /Default1/

            public ActionResult Index()
            {
                return View();
               //编译之后,此处使用;this.GetLocalUserId();……
            }


        }
    }

    C#5.0以后才可能增加属性扩展——参考:http://www.cnblogs.com/architect/archive/2011/05/23/2054197.html


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已标记为答案 Dun Eysa 2011年11月9日 5:07
    2011年7月23日 4:30

全部回复

  • 用扩展方法可以吗?
    QQ:261621172 http://highend.cnblogs.com 天杀下来的BUG,不怕有我来挡!
    2011年7月22日 10:59
  • 部分类?继承?    实在不想用继承,麻烦。

    我想在 XxxxController 里能有这样的属性:

    this.CurrentUser.UserId;

    很明显,需要在 Controller 基类扩充属性啦。。。


    楼主你好:)

    就我知道而言,目前C#版本尚未支持扩展属性,你可以尝试对Controller类进行方法的扩展。

    namespace MVC3Demo.Controllers
    {
        public static class MyController
        {
            public static string GetLocalUserId(this Controller con)
            {
                return "";
            }
        }
        public class Default1Controller : Controller
        {
            //
            // GET: /Default1/

            public ActionResult Index()
            {
                return View();
               //编译之后,此处使用;this.GetLocalUserId();……
            }


        }
    }

    C#5.0以后才可能增加属性扩展——参考:http://www.cnblogs.com/architect/archive/2011/05/23/2054197.html


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已标记为答案 Dun Eysa 2011年11月9日 5:07
    2011年7月23日 4:30