VS2103,MVC5,VB
我要做的事情:保留模板化的MVC5控制器和Model .vb文件,而不更改模板化方法内部的代码,并将所有方法更改保存在单独的文件中。
此帖子是根据以下最初的4条评论进行编辑的:
复制我所看到的开始一个新的MVC5项目。然后编辑HomeController.vb文件,如下所示,只需将Overridable添加到函数索引。
Public Class HomeController
Inherits System.Web.Mvc.Controller
Overridable Function Index() As ActionResult
Return View()
End Function
Function About() As ActionResult
ViewData("Message") = "Your application description page."
Return View()
End Function
Function Contact() As ActionResult
ViewData("Message") = "Your contact page."
Return View()
End Function
End Class
然后添加名为HomeControllerOverrides.vb的文件,如下所示:
Public Class OverridesToHomeController
Inherits HomeController
Overrides Function Index() As ActionResult
Return View()
End Function
End Class
您必须在第二个文件中为Index方法创建一个View。
运行程序时,不会执行覆盖功能,只执行原始功能。
最诚挚的问候, 艾伦
答案 0 :(得分:0)
查看你的global.asax,应该有一个将url映射到控制器的部分
routes.MapRoute( _
"MainPage", _
"", _
New With {.controller = "Home", .action = "Index"} _
)
或
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
如果您有默认控制器。它将使用第一个文件夹名称作为控制器名称或使用Home作为默认值。你需要重命名HomeController - > HomeControllerBase和HomeControllerOverrides - > HomeController中。被调用的控制器取决于页面的设置方式。
根据设置的方式,您可以http://website.com/OverridesToHome完成新课程的访问。