gpt4 book ai didi

asp.net-mvc-3 - 为什么 T4MVC 为 Controller Action 引入虚拟?

转载 作者:行者123 更新时间:2023-12-04 05:39:32 25 4
gpt4 key购买 nike

为什么 T4MVC 使用 virtual对于 Controller 方法?改变一个

public ActionResult Details (string Id)

到:
public virtual ActionResult Details (string Id)

我已经看过 other questions关于 T4MVC 但不明白为什么。

最佳答案

通常,如果框架/库需要虚拟方法(另请参见 Nhibernate),则意味着在某处/某时您的方法将被覆盖。

因此 T4MVC 将您的操作方法标记为 virtual因为它覆盖了它们。

让我们以一个简单的 Controller 为例:

public partial class HomeController : Controller
{
public virtual ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";

return View();
}
}

如果你去生成的 HomeController.generated.csT4MVC.tt你会发现一个从你的 Controller 继承并覆盖你的操作方法的生成类:
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public class T4MVC_HomeController: MvcApplication8.Controllers.HomeController {
public T4MVC_HomeController() : base(Dummy.Instance) { }

public override System.Web.Mvc.ActionResult Index() {
var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.Index);
return callInfo;
}

}

我没有使用过 T4MVC,所以我不知道 T4MVC 创建这个生成的类的原因和目的。

关于asp.net-mvc-3 - 为什么 T4MVC 为 Controller Action 引入虚拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11433242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com