代码之家  ›  专栏  ›  技术社区  ›  Zian Choy

呈现强类型部分视图

  •  0
  • Zian Choy  · 技术社区  · 15 年前

    安装程序:ASP.NET MVC 1

    问题是:

    当ASP.NET命中RenderPartial(“Openings”…)行时,会引发异常(“未能加载类型”System.Web.Mvc.ViewUserControl(属于IEnumerable(属于OpenSpace))“.”),即使视图存在并且正在传入正确的模型。视图都在视图文件夹中,在本例中,它们甚至在同一个子目录中。

    <%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
    
    <%@ Import Namespace="CommonClasses" %>
    <asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
        Date, Time, and Furniture Arrangement
    </asp:Content>
    <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
        <div id="floattext">
            <h1>
                Date, Time, and Furniture Arrangement</h1>
            <div id="content">
                <% Using Html.BeginForm%>
                <div id="left">
                    <% Html.RenderPartial("DateTimeAndArrangement")%>
                </div>     
                <div id="right">
                    <% Html.RenderPartial("Openings", New List(Of OpenSpace))%>
                </div>
                <% End Using%>
            </div>
        </div>
    </asp:Content>
    

    DateTimeAndArrangement视图显示正确,因此我只发布了空缺代码:

    <%@ Import Namespace="CommonClasses" %>
    <%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl(of IEnumerable(of OpenSpace))" %>
    <%  If Model.count = 0 Then%>
    <p>
        There are no open spots that match the event's requirements.</p>
    <%  Else%>
    'Make a big clickable table with fancy AJAX magic
    <%  End If%>
    

    给自己的提示:第134版

    2 回复  |  直到 15 年前
        1
  •  0
  •   eKek0    15 年前

    在视图的第一行中尝试此操作(视图声明):

    Inherits="System.Web.Mvc.ViewPage(of IEnumerable(of OpenSpace))"
    
        2
  •  0
  •   Craig Stuntz    15 年前

    “未能加载类型”表示ASP.NET编译器找不到声明OpenSpace的程序集。有几件事要尝试:

    1. 完全限定开放空间。

    我猜这很可能是个问题:

    Inherits="System.Web.Mvc.ViewUserControl(of IEnumerable(of MyNamespace.OpenSpace))"