Tôi có một lớp điều khiển cơ bản:ExecuteCore() trong lớp cơ sở không bị sa thải trong MVC 4 beta
Và tất cả điều khiển khác của tôi được thừa hưởng này BaseClass như thế này
làm việc Tất cả điều này tuyệt vời trong MVC3 (kiểm tra ngày hôm nay , nó thực sự hoạt động) nhưng có vẻ như ExecuteCore trong BaseController không bị bắn nữa trong MVC 4 beta.
Bất kỳ ý tưởng nào? Hoặc bất cứ điều gì lớn đã thay đổi dưới mui xe? Cảm ơn rất nhiều.
public class BaseController : Controller
{
private string _myData;
public string MyData
{
get
{
return _myData;
}
}
protected override void ExecuteCore()
{
_myData = "I am doing something";
base.ExecuteCore();
}
}
public class HomeController : BaseController
{
public ActionResult Index()
{
ViewBag.MyData = MyData;
// Doing something with value in BaseClass
return View();
}
}
Cảm ơn đã nhận xét. Có vẻ như đội MVC thực sự đã thay đổi điều gì đó. Tôi có một bước đi khác có thể giải quyết vấn đề này: Thay vì ExecuteCore, tôi ghi đè OnActionExecuting trong BaseClass, được kích hoạt chính xác. – BladeLeaf
Tại thời điểm này, trang MSDN không trống và bao gồm nhận xét sau: "Cờ này là để tương thích ngược. ASP.NET MVC 4. cho phép bộ điều khiển hỗ trợ các mẫu không đồng bộ. Điều này có nghĩa là ExecuteCore không được gọi trên các lớp dẫn xuất. các lớp có thể ghi đè cờ này và đặt thành true nếu chúng vẫn cần ExecuteCore để gọi. " Điều đó có nghĩa là giải pháp/giải pháp của bạn là hợp lệ. – huhu78