Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ViewBag和HtmlHelper错误:";找不到编译动态表达式所需的一个或多个类型。是否缺少程序集引用?“;_C#_Asp.net Mvc_Visual Studio 2013_Razorengine - Fatal编程技术网

C# ViewBag和HtmlHelper错误:";找不到编译动态表达式所需的一个或多个类型。是否缺少程序集引用?“;

C# ViewBag和HtmlHelper错误:";找不到编译动态表达式所需的一个或多个类型。是否缺少程序集引用?“;,c#,asp.net-mvc,visual-studio-2013,razorengine,C#,Asp.net Mvc,Visual Studio 2013,Razorengine,ViewBag错误:“找不到编译动态表达式所需的一个或多个类型。是否缺少程序集引用?” 所有HTML帮助程序方法都包含错误:“无法从用法推断方法的类型参数。请尝试显式指定类型参数。” 在花了过去两天的时间翻阅了与此错误相关的其他帖子后,以下是我尝试的内容: 修复Visual Studio 重新安装Visual Studio 确保引用了Microsoft.CSharp和System.Core 添加到global.asax:ViewEngines.Engines.Clear();添加(新的Cust

ViewBag错误:“找不到编译动态表达式所需的一个或多个类型。是否缺少程序集引用?”

所有HTML帮助程序方法都包含错误:“无法从用法推断方法的类型参数。请尝试显式指定类型参数。”

在花了过去两天的时间翻阅了与此错误相关的其他帖子后,以下是我尝试的内容:

  • 修复Visual Studio
  • 重新安装Visual Studio
  • 确保引用了Microsoft.CSharp和System.Core
  • 添加到global.asax:ViewEngines.Engines.Clear();添加(新的CustomRazorViewEngine())
  • 将Microsoft.CSharp Copy Local的参考值从false更改为True
  • 今天我安装了更新RC 3
  • 检查GAC的版本(仅包含版本4.0.0.0)
  • 卸载/重新安装最新版本的.NET framework
这是我的视图Web.Config:

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <add namespace="WebApplication14" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>
   @model WebApplication14.Models.ResetPasswordViewModel
    @{
        ViewBag.Title = "Reset password";
    }

    <h2>@ViewBag.Title.</h2>

    @using (Html.BeginForm("ResetPassword", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
    {
        @Html.AntiForgeryToken()
        <h4>Reset your password.</h4>
        <hr />
        @Html.ValidationSummary("", new { @class = "text-danger" })
        @Html.HiddenFor(model => model.Code)
        <div class="form-group">
            @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.PasswordFor(m => m.Password, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" class="btn btn-default" value="Reset" />
            </div>
        </div>
    }

    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
    }
在这一点上真是不知所措。这是在打开一个全新的MVC项目以及旧项目时发生的。我想在新的安装和更新之后,错误会消失,但我错了。任何帮助都将不胜感激

示例代码:

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <add namespace="WebApplication14" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>
   @model WebApplication14.Models.ResetPasswordViewModel
    @{
        ViewBag.Title = "Reset password";
    }

    <h2>@ViewBag.Title.</h2>

    @using (Html.BeginForm("ResetPassword", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
    {
        @Html.AntiForgeryToken()
        <h4>Reset your password.</h4>
        <hr />
        @Html.ValidationSummary("", new { @class = "text-danger" })
        @Html.HiddenFor(model => model.Code)
        <div class="form-group">
            @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.PasswordFor(m => m.Password, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" class="btn btn-default" value="Reset" />
            </div>
        </div>
    }

    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
    }
@model WebApplication14.Models.ResetPasswordViewModel
@{
ViewBag.Title=“重置密码”;
}
@ViewBag.Title。
@使用(Html.BeginForm(“ResetPassword”,“Account”,FormMethod.Post,new{@class=“form horizontal”,role=“form”}))
{
@Html.AntiForgeryToken()
重置密码。

@Html.ValidationSummary(“,new{@class=“text danger”}) @Html.HiddenFor(model=>model.Code) @LabelFor(m=>m.Email,新的{@class=“col-md-2控制标签”}) @TextBoxFor(m=>m.Email,新的{@class=“form control”}) @LabelFor(m=>m.Password,新的{@class=“col-md-2控制标签”}) @Html.PasswordFor(m=>m.Password,新的{@class=“form control”}) @LabelFor(m=>m.ConfirmPassword,新的{@class=“col-md-2控制标签”}) @Html.PasswordFor(m=>m.ConfirmPassword,new{@class=“form control”}) } @节脚本{ @Scripts.Render(“~/bundles/jqueryval”) }
我也有这个问题。在我执行以下步骤后,此问题已得到修复:

  • 已安装Visual Studio update 3
  • 删除所有临时文件(从\Windows\Microsoft.NET\Framework64\v4.0.30319\temporary ASP.NET文件\Windows\Microsoft.NET\Framework\v4.0.30319\temporary ASP.NET文件\AppData\Local\Temp\temporary ASP.NET文件\root)
  • 从项目文件夹和csproj.user中删除{ProjectName}.v12.suo
  • 创建一个新的asp.net mvc应用程序,并将Views web.config复制到旧的应用程序中。这里是旧的(左)和新的(右)之间的区别:

编辑:忽略比较文件中的第20行。

在VM崩溃后,我遇到了类似的问题。解决我的问题的关键一步是Boies Ioan回答中的第二个要点——具体来说,最后一个文件夹提到:


“删除所有临时文件(从\Windows\Microsoft.NET\Framework64\v4.0.30319\temporary ASP.NET files\Windows\Microsoft.NET\Framework\v4.0.30319\temporary ASP.NET files、\AppData\Local\Temp\temporary ASP.NET files\root)”

尝试重建解决方案(按F6)。这为我解决了这个问题。

你能不能也包括引发错误的代码?它基本上发生在所有包含ViewBag和HTML帮助程序的代码中。下面是来自默认MVC模板的ResetPassword视图的一个示例:我也有同样的问题。它是在我升级到MVC5.2之后开始的,所以我认为他们在那个版本中出了问题。我仍在寻找解决方案,但如果发现任何问题,我会尝试更新您。对我来说,这是要点3:从解决方案文件夹中删除{SolutionName}.v12.suo,从项目文件夹中删除{ProjectName}.csproj.user。