具體東西就很少說了,全部編譯,代碼都是木有問題的。javascript
結果預覽頁面的時候居然告訴我編譯錯誤,尼瑪這不科學啊。html
來看看錯誤頁面java
看着問題大概應該是缺乏} ,或者多了個} 倒置的編譯錯誤纔對,可是編譯生成徹底沒有問題啊,沒辦法,既然報這個問題,那確定是最終合併生成的代碼文件存在bug.net
那究竟是哪裏出的問題呢,沒辦法,硬着頭皮查吧。調試
1.顯示試着調試運行了一下頁面,發現後臺徹底沒問題。return view() 後,就出現了黃頁。 那問題應該就是在html頁面中了,那就來看看html頁面中有些什麼吧。htm
通常的html,即使是錯了也不會影響編譯纔對,更況且使用vs的自動對齊,是能夠對齊代碼的,一眼看去,應該是沒有問題的。那估麼這問題就應該在開頭了。先來看看blog
頁面的部分代碼吧ip
@using Junph.Entities.EShop @{ ViewBag.Title = "結算中心"; var contactList = (IList<CRM_UserContact>) @ViewBag.ContactList; CRM_UserContact defaultContact = null; if (contactList != null) { defaultContact = contactList[0]; } } <header> <div class="top"> <div class="backicon"><a href="javascript:history.back()" target="_self"></a></div> <div class="titleFont">@ViewBag.Title</div> <div class="shopicon"><a href="@Url.Action("Index","Cart")" target="_self"></a></div> </div> </header>
這是html頁面的開頭的一部分代碼。後面的html就沒有貼出了,沒什麼意義了。get
要說是}花括號的問題,那就只有一種可能了, 其中花括號的嵌套可能出現了問題。那究竟是什麼問題呢。先嚐試去掉判斷的代碼試試吧。it
靠,果真沒有問題了,頁面至少是顯示出來了。那問題確定就在這裏了。
razor語法印象中這麼寫應該是沒問題的吧。因而乎在確認了下,語法確實沒有問題啊。
http://blog.csdn.net/pasic/article/details/7072340
那就很奇怪了,難道是bug?,因而乎換了中寫法,將判斷邏輯單獨寫在了一個代碼塊中(其實能夠直接用三元表達式?:避免這個問題,這裏主要是爲了看看究竟)
@{ if (contactList != null) { defaultContact = contactList[0]; } }
再預覽頁面,沒有問題。呵呵,我只能說坑啊,倒黴碰上了。