1

我的 C# ASP.NET MVC5 项目中有两个cshtml视图。这些视图处理用户资料和公司资料。

我正在为这些字段制作编辑器,以便用户可以填写他们的个人资料。

在用户配置文件视图中,编辑器中的 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>
}

及配套部分公司观点:

@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>
}

用户视图错误是:

“/”应用程序中的服务器错误。

编译错误

说明:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。

编译器错误消息:CS0103:当前上下文中不存在名称“模型”

公司视图工作得很好。对于它的价值,当我使用@Html.EditorForModel().

我看不出我的视图之间有任何区别,那么为什么 lambda 表达式仅在一个视图中无法通过 JIT 编译呢?

作为一个附带问题,Razor v3 没有突出我的观点,也没有提供 Intellisense。但这是另一个帖子的问题。

4

1 回答 1

5

-> 不等于 =>。

现在看到了吗?:)

它应该是:

@Html.LabelFor( model => model.Salutation )
@Html.EditorFor( model => model.Salutation )
于 2013-11-14T15:16:59.950 回答