我需要在控制器外部生成动作链接。
我可以在视图中使用Html.Action,在控制器中使用Url.Action。那很好但是......
我有自己的课程,我想为网站菜单生成HTML代码,该代码在site.master中使用。但是如何在我自己的班级中生成动作链接?可能的解决方案是在BaseController中生成这个HTML代码,但我不想这样做,因为我的类应该是独立的,能够生成正确的链接。
我已经用Google搜索了一小时,但没有找到解决方案。
有任何帮助吗?感谢
答案 0 :(得分:1)
动作链接生成取决于路由配置和控制器上下文。这两个都只能在实际的ASP.NET MVC管道中使用。试想一下:如果我告诉你生成一个动作链接,但没有告诉你任何关于网络应用程序的信息,你会怎么做呢?
如果您担心SOLID,为什么不将[{1}},UrlHelper
或HtmlHelper
注入生成操作链接的班级?
ControllerContext
答案 1 :(得分:1)
传递给Html对象的引用,以便在实例化类时在方法中使用它。您可以在实例化菜单对象时执行此操作,或者在每个函数调用时执行此操作(如果它们是静态的)。