Почему мой пользовательский HtmlHelpers перестал работать после обновления до MVC3? - PullRequest
0 голосов
/ 24 февраля 2011

Я только что закончил этот контрольный список для обновления моего сайта asp.net mvc2 до mvc3: http://www.asp.net/learn/whitepapers/mvc3-release-notes#upgrading

Все компилируется, но когда я запускаю приложение, я получаю ошибки в представлениях.

Пример представления:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/site.Master" Inherits="System.Web.Mvc.ViewPage<Genesis.Domain.Entities.StreamEntry>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    <%: Model.seTitle %>
</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="MetaContent" runat="server">
    <%: Html.GetMetaTag("description", Model.seDescription )%>
    <%: Html.GetMetaTag("keywords", Model.seKeywords )%>
</asp:Content>

<asp:Content ID="Content4" ContentPlaceHolderID="HeadlineContent" runat="server">
    <%: Model.seHeadline %>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <p>
        <%//: Html.AddThis() %>
    </p>
    <p>
        Created: <br /><strong><%: Model.seDateCreated %></strong><br />
        Last Modified: <br /><strong><%: Model.seDateModified %></strong>


    </p>
    <%: MvcHtmlString.Create(Model.seBody) %>

    <% Html.RenderAction("Comments", "Comments", new { streamEntryID = Model.seID, allowComments = Model.AllowComments }); %>

</asp:Content>

Текст ошибки:

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1061: 'System.Web.Mvc.HtmlHelper<Genesis.Domain.Entities.StreamEntry>' does not contain a definition for 'GetMetaTag' and no extension method 'GetMetaTag' accepting a first argument of type 'System.Web.Mvc.HtmlHelper<Genesis.Domain.Entities.StreamEntry>' could be found (are you missing a using directive or an assembly reference?)

Source Error:



Line 6:  
Line 7:      <asp:Content ID="Content3" ContentPlaceHolderID="MetaContent" runat="server">
Line 8:          <%: Html.GetMetaTag("description", Model.seDescription )%>
Line 9:          <%: Html.GetMetaTag("keywords", Model.seKeywords )%>
Line 10:     </asp:Content>

Как мне заставить мои представления снова распознавать мои пользовательские помощники html?

1 Ответ

3 голосов
/ 24 февраля 2011

Попробуйте добавить директиву Import в верхней части представления, чтобы увидеть, имеет ли она какое-либо значение:

<%@ Import Namespace="Namespace.Of.The.Class.Containing.The.Helper" %>

Также вы можете добавить это пространство имен в раздел <namespaces> файла web.config.

...