Asp.net部分视图无效

时间:2016-09-23 13:38:55

标签: c# asp.net partial-views

主要观点:

@model BTGHRM.Models.EmployeeOverallReport
@{
    Layout = "~/Views/Shared/_EmployeeMain.cshtml";
}

@foreach (var item in Model.ListOfPersonalData)
{
    Html.Partial("Partial/_EmployeeOverallReportList", item);
    <br/>
}

MyPartial:

@model BTGHRM.Models.PersonalData
@{
WebGrid grid = new WebGrid(Model.ListOfWorkData, canSort: false, rowsPerPage: 15);
}

@Html.Label(Model.FirstName)
@Html.Label(Model.LastName)
@Html.Label(Model.Appointment)
@Html.Label(Model.Division)

@if (Model.ListOfWorkData.Any())
{
@grid.GetHtml(
        tableStyle: "table",
        headerStyle: "table_HeaderStyle",
        footerStyle: "table_PagerStyle",
        rowStyle: "table_RowStyle",
        alternatingRowStyle: "table_AlternatingRowStyle",
        selectedRowStyle: "table_SelectedRowStyle",
        columns: grid.Columns(
            grid.Column("ProjectName", @Resources.Localization.project, format: @<text>
                <span class="display-mode"><label id="ProjectNameLabel">@item.ProjectName</label></span>
            </text>, style: "p60"),
            grid.Column("Activity", @Resources.Localization.activity, format: @<text>
                <span class="display-mode"><label id="ActivityLabel">@item.Activity</label></span>
            </text>, style: "p60"),
            grid.Column("ProjectEndDate", @Resources.Localization.start_date, format: @<text>
                <span class="display-mode"><label id="ProjectStartDate">@item.ProjectStartDate</label></span>
            </text>, style: "p60"),
            grid.Column("ProjectEndDate", @Resources.Localization.end_date, format: @<text>
                <span class="display-mode"><label id="ProjectEndDate">@item.ProjectEndDate</label></span>
            </text>, style: "p60")
        )
)
}

我的模特:

public class EmployeeOverallReport
{
    //DataBlock:
    public bool PersonalDataPartBool { get; set; }
    public List<PersonalData> ListOfPersonalData { get; set; }
    //ColumnsNeeded:
    public bool EmployeeIdBool { get; set; }
    public bool FirstNameBool { get; set; }
    public bool LastNameBool { get; set; }
    public bool AppointmentBool { get; set; }
    public bool DivisionBool { get; set; }

    //DataBlock:
    public bool WorkDataPartBool { get; set; }
    public bool ProjectWorkerIdBool { get; set; }
    public bool ProjectIdBool { get; set; }
    public bool ProjectNameBool { get; set; }
    public bool ActivityBool { get; set; }
    public bool ProjectStartDateBool { get; set; }
    public bool ProjectEndDateBool { get; set; }

}

public class PersonalData
{
    //Not all
    public List<WorkData> ListOfWorkData { get; set; }
    public int EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Appointment { get; set; }
    public string Division { get; set; }
    //And more
}

public class WorkData
{
    public int WorkerId { get; set; }
    public int ProjectId { get; set; }
    public string ProjectName { get; set; }
    public string Activity { get; set; }
    [DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
    public DateTime? ProjectStartDate { get; set; }
    [DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
    public DateTime? ProjectEndDate { get; set; }
}

Bool属性用于排序目的,现在不使用。问题是这段代码没有任何结果:

enter image description here

然而它返回制动器并且在跟踪模式下所有模型都有正确的数据,我能够使用断点进入网格。

1 个答案:

答案 0 :(得分:1)

for循环中的Html.Partial仍在调用Razor Page的HtmlHelper。换句话说,您仍在调用该函数,但该返回值未呈现到视图中。你的循环是

<text>
    Html.Partial("Partial/_EmployeeOverallReportList", item);
</text>

然后Html.Partial将显示为文字