从C#web迁移到MVC应用程序时的继承问题
我通常创建ASP.NET网站,并使用一些类,主要是从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 =
基类
。通常我会改变
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();
}
}
}