2013-11-14 39 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 –