
为了避免在渲染显示/编辑器模板时出现重复,我希望每个子类模板(Cheese.csHTML)在其共享公共基类模板(Product.csHTML)下面呈现其唯一字段.
但是,从派生类转换为基类(Product)cheese并尝试在子类模板中显示其模板没有任何效果.
displayTemplate文件结构:
.\VIEws\Shared\displayTemplates .\Product.csHTML -- renders common base class fIElds .\Cheese.csHTML -- renders unique class fIElds and calls Product.csHTML
Cheese.cHTML:
@model Application.Data.Models.Cheese@{ var product = (Application.Data.Models.Part)Model;}Base Product FIElds:@HTML.displayFor(x => products,"Product") @* no effect! *@<div > <div >@HTML.LabelFor(m => Model.UniqueProperty)</div> <div >@HTML.displayFor(m => Model.UniqueProperty)</div></div> 转换到基类并呈现Product.csHTML模板可以从VIEw中正常工作,但不能在子类模板中工作.
如何从子类模板中为基类渲染公共模板?
解决方法 找到解决方案@ HTML.displayFor(…)cannot be nested,所以你必须在派生模板中使用@ HTML.Partial,如下所示:
@HTML.Partial("~/VIEws/Shared/displayTemplates/Product.csHTML",product) %> 或者,如果您的文件结构允许,则更简洁的路径:
@HTML.Partial("displayTemplates/Product",product) 总结 以上是内存溢出为你收集整理的templates – 嵌套的@ Html.DisplayFor(model => baseClass,“BaseClass”),用于不渲染基类模板全部内容,希望文章能够帮你解决templates – 嵌套的@ Html.DisplayFor(model => baseClass,“BaseClass”),用于不渲染基类模板所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)