在Razor Helper里面使用@section
我们正在尝试将布局的各个部分设置为必需,但可以根据各个页面进行配置。 目前我们用一节来做这件事。
@section FloatingNav { @Model.Name @Model.AverageRating
}
这需要您在每个新页面中设置此块,但我希望使用部分默认值和选项来使用部分视图进行配置,从而简化此过程。 我希望设置一个像这样的Razor助手。
@using System.Web.Mvc.Html @helper FloatingNav(string name, int rating) { @section FloatingNav { name rating
} } @helper FloatingNav(System.Web.Mvc.HtmlHelper html, string viewName) { @section FloatingNav { @html.Partial(viewName) } } @helper FloatingNav(System.Web.Mvc.HtmlHelper html, string viewName, object model) { @section FloatingNav { @html.Partial(viewName, model) } }
所以实现的语法就像
@Layout.FloatingNav(@Model.Name, @Model.AverageRating)
要么
@Layout.FloatingNav("_SimpleNav", @Model)
但问题是Razor Helpers似乎不理解部分语法。 有没有办法在Razor Helpers中包含部分?
我不认为这是可能的。
@helper
和@section
语法是编译页面的特殊指令。
HelperResult
(帮助程序)不知道如何定义节。
DefineSection方法属于WebPageBase
。
你可能不得不从不同的方向来到这里。 使用部分视图而不是帮助程序可能会解决此问题。
- 使用Ninject将通用接口绑定到存储库时,获取“MissingMethodException:无法创建接口实例”
- unit testing带有伪HTTPContext的ASP.NET Web API控制器
- 在SSO身份validation后设置FormsAuthentication
- Asp.Net Routing – 显示完整的URL
- 不支持每种类型的多个对象集。 对象集IdentityUsers’和用户都可以包含类型的实例
- 在ASP.Net MVC中路由之前的数据库选择
- C#MVC 4 ViewModel不接受null DateTime
- DelegatingHandler用于WebApi中的响应
- Asp.net MCV4框架问题