首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与EditorTemplates的问题

与EditorTemplates的问题
EN

Stack Overflow用户
提问于 2014-02-13 07:50:05
回答 1查看 44关注 0票数 0

基于ASP.Net MVC 4.0的场景:

我需要在屏幕上呈现一组具有自定义字段的Widgetsaka用户控件。这个小部件的ViewModel是这样的-

代码语言:javascript
复制
Public Class Widget
{
    public string Header {get;set;}

    //Note the data type here. It causes issues with rendering Widget itself.
    public object ActualContent {get;set;}

    public string Footer {get;set;}
}

在运行时,假设我想呈现两个小部件.然后,我所需要做的就是创建如下所示的实例:

代码语言:javascript
复制
Widget w1 = new Widget()
{ 
    Header ="PatientDetails", 

    ActualContent = new Patient ()
    {       
        FirstName = "ABC",
        LastName  = "XYZ" 
    }

    Footer = "PatientDetails 
};

Widget w2 = new Widget()
{ 
    Header ="Address-Header", 

    ActualContent = new Address ()
    {
        ZIPCode = "123456",
        Extn  = "1234" 
    }

    Footer = "Address-Footer" 
};

cshtmls是:

代码语言:javascript
复制
Main Page i.e Widget.cshtml

@using Widgets.Models
@model List<Widget>
...
<div class="widget">
        <div class="header">
              @Model.Header
        </div>

        <div class="body" >
            @Html.EditorFor(model => Model.ActualContent) 
        </div>

        <div class="footer">
              @Model.Footer
        </div>
</div>
...
Patient.cshtml in ~\Views\Shared\EditorTemplates
@model Widgets.Models.Patient

    <div class="editor-label">
        @Html.LabelFor(model => Model.FirstName)
    </div>

    <div class="editor-field">
        @Html.EditorFor(model => Model.FirstName)
        @Html.ValidationMessageFor(model => Model.FirstName)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => Model.LastName)
    </div>

    <div class="editor-field">
        @Html.EditorFor(model => Model.LastName)
        @Html.ValidationMessageFor(model => Model.LastName)
    </div>

Address.cshtml也有类似的实现。

注意,属性ActualContent的类型为object。可以在运行时为任何UserControl患者、地址等分配一个实例。另外,每个UserControls都有一个在EditorTemplates中定义的相应强类型的cshtml视图。

问题:现在的问题是,当我尝试加载小部件时,我可以看到两个小部件都被呈现,但只显示页眉和页脚值。与ActualContent属性相对应的部分(如上面所示)根本没有呈现,尽管在去大的时候,我可以看到相应的用于病人和地址的.cshtml正在被访问!

我觉得我可能错过了一些东西。

如果有人能帮我工作那就太好了。提前谢谢。[医]桑德什湖

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 08:05:35

尝试像这样访问编辑器模板,

代码语言:javascript
复制
 @Html.EditorFor(m => m.ActualContent, "_YourEditorTemplate")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21748142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档