2016-09-23 3 views
-1

Главного вида:Asp.net частичного вид не работает

@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

Однако он возвращает тормоза и в режиме трассировки все модели имеют правильные данные и я могу получить внутри сетки с контрольными точками.

+0

перед передачей его в представление \ частичный вид, что это состояние модели? –

+0

@SimonPrice Это модель, содержащая «список сотрудников», каждый элемент списка сотрудников имеет собственный список «рабочих данных». Элементы «списка сотрудников» передаются на частичный просмотр один за другим, где веб-сетка построена с данными из списка «данные работы». В модели режима трассировки имеются достоверные данные. Btw, я просто привел код с частичного в основной вид, и он отлично работает. –

+0

@SimonPrice я забыл разместить @ перед Html.Partial («Partial/_EmployeeOverallReportList», item); Но я не понимаю, почему эта строка не была замечена как строка текста –

ответ

1

Html.Partial в вашем цикле for по-прежнему вызывает HtmlHelper для страницы Razor. Другими словами, вы все еще вызывали функцию, но это возвращаемое значение не отображалось в представлении. Если бы ваш цикл был

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

Тогда Html.Partial показал бы как текст

Смежные вопросы