从C#web迁移到MVC应用程序时的继承问题

从C#web迁移到MVC应用程序时的继承问题,c#,model-view-controller,C#,Model View Controller,我通常创建ASP.NET网站,并使用一些类,主要是基类。通常我会改变 public partial class _default : Page 到 在名称空间名称的顶部使用。然而,我似乎无法在MVC中做到这一点。如何将我的基类或任何其他类放入MVC页面 我询问的原因是我有一个名为errors的类,我通常在global.asax文件中有这个类: void Application_Error(object sender, EventArgs e) { Exception objErr =

我通常创建ASP.NET网站,并使用一些类,主要是
基类
。通常我会改变

public partial class _default : Page

在名称空间名称的顶部使用。然而,我似乎无法在MVC中做到这一点。如何将我的
基类
或任何其他类放入MVC页面

我询问的原因是我有一个名为
errors
的类,我通常在
global.asax
文件中有这个类:

void Application_Error(object sender, EventArgs e) 
{
    Exception objErr = Server.GetLastError().GetBaseException();
    namespace.errors.WriteError(Request.Url.ToString(), objErr.Message);
}
但我似乎无法做到这一点,即使整个站点都有一个共享的名称空间


这个问题很有可能是站不住脚的,但不管怎样:-)

对于基类,您可以创建ApplicationController 比如:

namespace YourApplication.Controllers
{
    public abstract class ApplicationController : Controller
    {
        public ApplicationController()
        {
            using(ApplicationDataContext menu = new ApplicationDataContext())
            {
                // loading data for menu control
                MenuRepository myMenu = new MenuRepository();
                ViewData["menu"] = myMenu.MenuList();
            }
        }
    }
}
然后你可以从任何控制器上扩展它 像这样:

namespace YourApplication.Controllers
{
    public class DefaultController : ApplicationController
    {
        public ActionResult Index()
        {
            return View();
        }
    }
}

请注意,在我的应用程序控制器示例中,我正在加载视图,我将在每个页面上显示,您可以加载任何您想要的内容,任何您经常或始终需要的内容。这几乎就是你的基本类。

非常感谢,这是一个非常好的主意,MVC的东西有很多东西需要快速学习,这肯定会帮助Aloties,拥有应用程序控件是一个非常好的主意,在本例中,我实际上是通过MVC用户控件在母版页中显示ViewData[“menu”](部分)。当然,你可以有变量什么的。
namespace YourApplication.Controllers
{
    public class DefaultController : ApplicationController
    {
        public ActionResult Index()
        {
            return View();
        }
    }
}