![](/img/trans.png)
[英]System.Web.Mvc.HtmlHelper does not contain a definition for MvcSiteMap
[英]'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.