2013-05-16 80 views
2

我有一個WebGrid,我試圖在MVC4剃鬚刀視圖中定義。我想使用多行來定義列格式以提高可讀性。下面的作品,格式上一行:網格列格式的Razor多行語法

@grid.GetHtml(
    columns: grid.Columns(
     grid.Column(
      header: "Address", 
      format: (item) => @: @item.Address.Street1 @item.Address.Street2<br />@item.Address.City, @item.Address.State @item.Address.Zip 
      ) 
     ) 
    ) 

下面給出瞭解析錯誤,; expected上第一尾括號,並Invalid expression term ')'另一方面末尾括號:

@grid.GetHtml(
    columns: grid.Columns(
     grid.Column(
      header: "Address", 
      format: (item) => @: @item.Address.Street1 @item.Address.Street2<br /> 
           @: @item.Address.City, @item.Address.State @item.Address.Zip 
      ) 
     ) 
    ) 

看完後ScottGu's blog,我認爲這是正確的多行語法。我嘗試了各種大括號,分號和括號的位置,而且我找不到使分析器感到高興的語法。

回答

0

經過一小會兒,我找到了一個使用<text>標籤的工作版本。

@grid.GetHtml(
    columns: grid.Columns(
     grid.Column(
      header: "Address", 
      format: @<text>@item.Address.Street1 @item.Address.Street2<br /> 
          @item.Address.City, @item.Address.State @item.Address.Zip</text> 
       ))) 
0

也許它與多線lambda有關。

什麼是這樣的:

@grid.GetHtml(
columns: grid.Columns(
    grid.Column(
     header: "Address", 
     format: (item) => 
         { 
          @: @item.Address.Street1 @item.Address.Street2<br /> 
          @: @item.Address.City, @item.Address.State @item.Address.Zip 
         } 
     ) 
    ) 
) 
+0

並非所有的代碼路徑在類型lambda表達式返回一個值「System.Func <動態,對象>」 –