2013-11-14 35 views
1

我在C#ASP.NET MVC5项目中有两个cshtml视图。这些视图处理用户配置文件和公司配置文件。CSHTML文件中lambda表达式的运行时编译器问题

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

在用户配置文件视图中,编辑器中的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没有突出我的观点,也没有提供智能感知。但这是另一篇文章的问题。

+1

替换模型 - > model.Salutation与模型=> model.Salutation – Miller

回答

5

- >不等于=>。

现在看? :)

它应该是:

@Html.LabelFor(model => model.Salutation) 
@Html.EditorFor(model => model.Salutation) 
+0

“你曾经花了一个多小时寻找一个单字符错误不止?四个小时?超过一天?超过两天?您第一个看到它的人立即找到它?“ –

+0

去过几十次了。无法看到树木的森林:)。 –

+0

关于The Hacker Test v1.0的问题477-481。 http://www.hungry.com/~jamie/hacktest.text –