2011-04-26 58 views
0

將.ascx模板轉換爲剃鬚刀語法有很多問題。誰能幫我?將.ascx轉換爲剃鬚刀語法的問題

@{ 
bool ShouldShow(ModelMetadata metadata) { 
    return metadata.ShowForDisplay 
     && metadata.ModelType != typeof(System.Data.EntityState) 
     && !metadata.IsComplexType 
     && !ViewData.TemplateInfo.Visited(metadata); 
    } 
} 

@if (Model == null) { 
    ViewData.ModelMetadata.NullDisplayText 
} else if (ViewData.TemplateInfo.TemplateDepth > 1) { 
    ViewData.ModelMetadata.SimpleDisplayText 
} else { 
    foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => ShouldShow(pm))) { 
    if (prop.HideSurroundingHtml) { 
     Html.Display(prop.PropertyName) 
    } else { 
     if (!String.IsNullOrEmpty(prop.GetDisplayName())) { 
      <div class="display-label">@prop.GetDisplayName()</div> 
     } 
     <div class="display-field">@Html.Display(prop.PropertyName)</div> 
    } 
} 

看起來上面的代碼是正確的(至少從我的角度來看)。

UPDATE

我沒有爲ShouldShow方法的任何智能感知!爲什麼?我有很多編譯錯誤。

錯誤1}預期PATH \ Object.cshtml 1 1 PROJ 錯誤5命名空間不能直接包含成員如字段或方法PATH \ Object.cshtml 11 3 PROJ 錯誤4無效標記 '}' 中類,結構,或者接口成員聲明PATH \ Object.cshtml 11 1 PROJ 等等!

+0

你有什麼問題?有錯誤嗎?如果是這樣,你可以發佈它嗎? – 2011-04-26 19:07:46

回答