簡體   English   中英

“System.Web.Mvc.HtmlHelper”不包含“RenderPartial”的定義 - ASP.Net MVC

[英]'System.Web.Mvc.HtmlHelper' does not contain a definition for 'RenderPartial' - ASP.Net MVC

我一直在嘗試在一台機器上運行 ASP.Net MVC 1.0,但無法解決這個問題。 我創建了一個新的 MVC 項目 (C#)。 它創建了所有的文件夾、視圖、控制器、模型等。一切都很好。 然后,當我按 F5 時,我得到以下信息:

d:\\VSCode2008\\MVC\\MvcApplication1\\Views\\Shared\\Site.Master(19):錯誤 CS0117:“System.Web.Mvc.HtmlHelper”不包含“RenderPartial”的定義

這發生在以下行:

httpHandler.ProcessRequest(HttpContext.Current); Default.aspx.cs

似乎是在嘗試執行 RenderPartial() 以呈現登錄部分時。

我安裝了 .Net 框架的 3.51 版。 我安裝了 MVC 1.0 版,程序集顯然有 RenderPartial() 作為 HtmlHelper 的擴展方法。

有人見過類似的嗎? 我發現了一些關於 Beta 版和 RC 版類似問題的帖子,但建議的修復程序並未出現。

我喜歡MVC的理論,但它不讓我玩!

只是想排除這里明顯的問題,但是您能確保在 web.config 的命名空間部分中有這個嗎?

<add namespace="System.Web.Mvc.Html"/>

由於您在代碼隱藏(即 Default.aspx.cs)中引用它,因此您需要在文件頂部包含命名空間。

使用 System.Web.Mvc.Html;

是包含 RenderPartial 擴展方法的命名空間。

您可能認為這很愚蠢,但我遇到了同樣的問題。 我有一個正在運行的 MVC 應用程序,運行 1.0.0.0,突然間它停止工作,給我相同的 RenderPartial 不在定義中。 事實證明,當我瘋狂地清理我的 web.config 時,我刪除了這一部分。 當我重新添加它時,一切又正常了。 我確信這與類擴展在運行時的加載方式有關。

無論如何,將它重新添加到我的 web.config 在我的機器上工作。 ;)

<system.codedom>
    <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
                     type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v3.5"/>
            <providerOption name="WarnAsError" value="false"/>
        </compiler>

        <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4"
                     type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v3.5"/>
            <providerOption name="OptionInfer" value="true"/>
            <providerOption name="WarnAsError" value="false"/>
        </compiler>
    </compilers>
</system.codedom>

根據您的錯誤消息,您正在引用System.Web.Mvc.HtmlHelper 我正在 Reflector 中查看System.Web.Mvc dll,它告訴我RenderPartial駐留在命名空間System.Web.Mvc.Html ,而不是System.Web.Mvc.HtmlHelper

另一個可能的問題(取決於您的錯誤字符串)是擴展方法存在,但編譯器無法將您的參數與已知方法參數匹配。 我使用 T4MVC (noob) 遇到了這個問題,但忘記在我調用的操作名稱之前添加 ActionNames。

我的項目* .sln自2017年以來未更新。請參見此處: 名稱“ ViewBag”在當前上下文中不存在-Visual Studio 2015,用於Sonic Soul的修復方法。

如果您遷移到 Visual Studio 2017 或 2019 並且您的項目是 mvc4,請返回 Visual Studio 安裝程序並選中“ASP.net 和 Web 開發”下的 mvc4 選項。

解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM