gpt4 book ai didi

asp.net - 为什么我在 ASP.NET MVC 中收到 "The directive ' control' is unknown”错误?

转载 作者:行者123 更新时间:2023-12-04 18:43:22 24 4
gpt4 key购买 nike

我正在 ASP.NET MVC 中的一个项目的编辑器页面上工作。我想对创建页面和编辑页面使用一个控件,这样我就不必重复代码。我已经设置了一个 EditorTemplates文件夹内 /Views/Shared拿着我的模板。我在那里放置了一个名为 ArticlePresentation.ascx 的 .ascx 文件。 .
ArticlePresentation.ascx看起来像这样:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<genesis.Core.Presentation.ArticlePresentation>" %>

Testing the control

我的 Edit.aspx View 如下所示:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/genesis.Master" Inherits="System.Web.Mvc.ViewPage<genesis.Core.Presentation.ArticlePresentation>" %>

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

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

<h2>Edit</h2>
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<%: Html.EditorFor(ArticlePresentation => ArticlePresentation)%>
<% } %>

<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>

</asp:Content>

我可以构建站点而不会出现任何错误,但是,当我运行站点并浏览到编辑页面时,出现此错误:

System.Web.HttpParseException was unhandled by user code

 Message=The directive 'control' is unknown.

Source=System.Web

ErrorCode=-2147467259

WebEventCode=0

FileName=C:<path to folder>asp.net mvc\genesis\genesis\Views\Shared\EditorTemplates\ArticlePresentation.aspx

Line=2

VirtualPath=/Views/Shared/EditorTemplates/ArticlePresentation.aspx

StackTrace:

at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding)

at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath)

at System.Web.UI.TemplateParser.ParseInternal()

at System.Web.UI.TemplateParser.Parse()

at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType()

at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)

at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()

at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()

etc... etc...etc...



我已经在 google 上搜索了解决方案,但到目前为止我发现的所有内容都与在 aspx 页面而不是 ascx 页面中拥有控件有关。

有谁知道是什么导致了这个错误?

最佳答案

您收到此错误的原因是您的文件有 .aspx扩展名而不是 .ascx .仔细阅读错误信息:

ErrorCode=-2147467259

WebEventCode=0

FileName=C:\Documents and Settings\bquakkelaar\Desktop\dropstuff\asp.net mvc\genesis\genesis\Views\Shared\EditorTemplates\ArticlePresentation.aspx



现在将文件重命名为 ArticlePresentation.ascx一切都会按预期进行。

你也可以替换这一行:
<%: Html.EditorFor(ArticlePresentation => ArticlePresentation)%>

有了这个:
<%: Html.EditorForModel() %>

关于asp.net - 为什么我在 ASP.NET MVC 中收到 "The directive ' control' is unknown”错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com