Ссылка на объект не установлена ​​для экземпляра объекта - частичное представление

У меня есть строго типизированное частичное представление, которое выдает мне ошибку "Ссылка на объект не установлена ​​на экземпляр объекта" при запуске основного представления. Я знаю, что пока не передаю никаких параметров, но есть ли способ справиться с этой ошибкой?

Master View:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Test Form
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<div id="partial">
<% Html.RenderPartial("DisplayPartial"); %>
</div>

</asp:Content>

Частичный вид:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Student.Models.vwStudent>>" %>

<% foreach (var item in Model) {
           if (item == null) continue; %>

        <tr>            
            <td>
                <%: item.Item1%>
            </td>
            <td>
                <%: item.Item2%>
            </td>
        </tr>

    <% } %>

    </table>

2 ответа

Решение

Если вам нужно визуализировать это частичное представление, когда у вас нет модели, вы, безусловно, можете проверить, что модель не равна нулю перед циклом foreach

if (Model != null)
    foreach (...)

Вы должны передать некоторую модель вашему частичному представлению, потому что для этого нужен экземпляр IEnumerable<Student.Models.vwStudent>

<% Html.RenderPartial("DisplayPartial", model); %>

Или вы можете проверить в своем частичном представлении, если модель не является нулевой.

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Student.Models.vwStudent>>" %>


<% if (Model != null) {
     foreach (var item in Model) {
           if (item == null) continue; %>

        <tr>            
            <td>
                <%: item.Item1%>
            </td>
            <td>
                <%: item.Item2%>
            </td>
        </tr>

    <% }
} %>

    </table>
Другие вопросы по тегам