Razor视图扩展方法?
我想创建一个可以使用 @this 在 CSHTML 文件中使用的扩展方法,这样我就可以访问该方法中的 Layout 和 PageData 属性。
现在,我想知道要扩展哪个类,我尝试了 StartPage 和 ViewStartPage。
I want to create an extension method which I can use in CSHTML file using @this, so I can have accesss to Layout and PageData properties in the method.
Now, what I want to know is which class to extend, I tried both StartPage and ViewStartPage.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要将扩展方法添加到System.Web.Mvc.WebViewPage。 ViewStartPage 和 StartPage 分别表示 _ViewStart.cshtml 文件(以及 ASP.NET 网页中的 _PageStart.cshtml)。
You need to add the extension method to System.Web.Mvc.WebViewPage. ViewStartPage and StartPage represent the _ViewStart.cshtml file (and _PageStart.cshtml in ASP.NET WebPages) respectively.
你好,
如果我理解正确的话,HTML 帮助器方法可以帮助你。
您可以将页面中的所有变量作为参数传递。
在你的辅助方法中,你可以执行你的逻辑并返回应该渲染的内容。
(我想你也可以修改你的 helper.ViewContext 对象中的一些东西。
你的 Html-helper 可能看起来像这样:
所以也许它给你一个起点。无论如何,你可能无法访问你需要的一切。
Hallo,
If I understand it right a HTML helper method could help you.
You could pass as a parameter all variables you have in your page.
And in your helper method you can do your logic and return something what should be rendered.
(My be you can also modify some things in your helper.ViewContext object.
Your Html-helper could look like this:
So maybe it gives you a starting point. Anyway, it's possible that you don't have access to everything you need.
您应该采用所有 Razor 视图都继承的
WebPageBase
类。You should take the
WebPageBase
class, which all Razor views inherit.