CSHTML文件中的lambda表达式的运行时编译器问题

Cod*_*mer 1 c# razor visual-studio-2012 asp.net-mvc-5

cshtml在C#ASP.NET MVC5项目中有两个视图.这些视图处理用户配置文件和公司配置文件.

我正在为字段编辑,以便用户可以填写他们的个人资料.

在用户配置文件视图中,编辑器中的lambda表达式无法在浏览器中编译.用户视图的相关部分:

@model Project.Models.UserProfileViewModel

@{
    ViewBag.Title = "User Profile";
}
<h2>User Profile</h2>

@using (Html.BeginForm( "UserProfile", "Profile", FormMethod.Post, new { enctype = "multipart/form-data" } ))
{
    <div>
        @Html.LabelFor( model -> model.Salutation )
        @Html.EditorFor( model -> model.Salutation )
    </div>
}
Run Code Online (Sandbox Code Playgroud)

和公司视图的匹配部分:

@model Project.Models.CompanyProfileViewModel

@{
    ViewBag.Title = "Step 2:  Company Profile";
}
<h2>Company Profile</h2>

@using (Html.BeginForm( "CompanyProfile", "Profile", FormMethod.Post, new { enctype = "multipart/form-data" } ))
{
    <div>
        @Html.LabelFor(model => model.CompanyName)
        @Html.EditorFor(model => model.CompanyName)
    </div>
}
Run Code Online (Sandbox Code Playgroud)

用户视图错误是:

'/'应用程序中的服务器错误.

编译错误

描述:编译服务此请求所需的资源时发生错误.请查看以下特定错误详细信息并相应地修改源代码.

编译器错误消息:CS0103:当前上下文中不存在名称"model"

公司观点运作得很好.对于它的价值,用户视图在我使用时工作得很好@Html.EditorForModel().

我没有看到我的观点之间有任何区别,那么为什么lambda表达式只在一个视图中失败了JIT编译?

作为一个侧面问题,Razor v3并没有突出我的观点,也没有提供Intellisense.但这是另一篇文章的问题.

Dav*_*d L 5

- >不等于=>.

现在看?:)

它应该是:

@Html.LabelFor( model => model.Salutation )
@Html.EditorFor( model => model.Salutation )
Run Code Online (Sandbox Code Playgroud)