我是MVC和学习的新手.我在这里放一些代码.所以先看看
public class HomeController : BaseController
{
private IProductRepository productRepository;
private string strRouteValue;
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
strRouteValue = this.ControllerContext.RouteData.Values["method"].ToString();
this.productRepository = Factory.Create(strRouteValue);
}
[HttpGet]
public ActionResult Index(int id)
{
productRepository.Get(id);
return View();
}
[HttpPost]
public ActionResult Index(Product model)
{
productRepository.Add(model);
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
Initialize函数有什么作用?
每个人都必须说这是人们会初始化许多对象的地方,如果是这样的话我们也可以在控制器的构造函数中做到这一点.那么控制器初始化功能有什么特别之处呢?
控制器初始化函数和控制器构造函数有什么区别?
检查该方法的文档:MSDNController.Initialize()
::
初始化调用构造函数时可能不可用的数据.
不能直接调用此方法.重写此方法,以便在调用任何ActionResult方法之前提供其他处理任务,例如设置线程区域性或为TempData对象分配自定义提供程序.如果重写此方法,请调用基本控件的Initialize方法.
正如我在你之前关于MVC,依赖注入和控制器实例化的二十多个问题中提出的建议:停止将糟糕的博客帖子和SO上的不相关答案拼凑起来.购买一本体面的MVC书籍并从头到尾阅读.然后用一本关于单元测试的书来做同样的事情.如果你继续这样做,你将永远无法彻底了解事物.
归档时间: |
|
查看次数: |
4798 次 |
最近记录: |