2013-06-05 35 views
3

我在想我是否可以做到這一點,或者有其他方法可以做到嗎? 我建立這沒有問題,但是當我運行它,它說:MVC無法將lambda表達式轉換爲類型,因爲它不是委託人

CS1660:無法轉換lambda表達式類型 「DevExpress.Web.Mvc.RoundPanelSettings」,因爲它不是委託 型

代碼:

@Html.DevExpress().RoundPanel(RPsettings => 
{ 
    RPsettings.Name = "rpnlNewUpdateConfigs"; 
    RPsettings.Width = System.Web.UI.WebControls.Unit.Percentage(100); 
    RPsettings.ShowHeader = false; 
    RPsettings.SetContent(() => 
     { 
      Html.DevExpress().CallbackPanel(CBsettings => 
      { 
       CBsettings.Name = "cbpnlNewUpdateConfigs"; 
       CBsettings.Width = System.Web.UI.WebControls.Unit.Percentage(100); 
       CBsettings.CallbackRouteValues = new { Controller = "Storage", Action = "Storage" }; 
       CBsettings.SetContent(() => 
        { 
         @<table> 
          <tr> 
           <td> 
            <table> 
             <tr> 
              <td>&nbsp; 
              </td> 
              <td>Type: 
              </td> 
              <td> 
               @Html.DevExpress().ComboBox(cboxsettings => 
               { 
                cboxsettings.Name = "cbType"; 
                cboxsettings.Width = 180; 
                cboxsettings.SelectedIndex = -1; 
                cboxsettings.Properties.ValueType = typeof(string); 
                cboxsettings.Properties.Items.Add("Path"); 
               }).GetHtml(); 
              </td> 
              <td>&nbsp; 
              </td> 
             </tr> 
            </table> 
           </td> 
          </tr> 
         </table>; 
         Html.DevExpress().Label(L1settings => 
         { 
          L1settings.Name = "ErrorLabel1"; 
          L1settings.Text = "Label1"; 
         }).Render(); 
         Html.DevExpress().Label(L2settings => 
         { 
          L2settings.Name = "ErrorLabel2"; 
          L2settings.Text = "Label2"; 
         }).Render(); 
        }); 
      }).GetHtml(); 
     }); 
}).GetHtml() 

任何的猜測?

+0

RPsettings是類類型不是變量,這就是問題!新的RPsettings應該可以工作,或者像rPsettings這樣的lambda變量! – Fals

+0

不工作。如果你檢查DevExpress回調面板的例子,它的工作方式是這樣的http://mvc.devexpress.com/CallbackPanel/ – AAlferez

+0

我確實檢查過了,他們將這些設置作爲lambda no傳遞給類,如下所示: 「settings = > { settings.Name = 「cbpExample」; settings.CallbackRouteValues =新{控制器= 「CallbackPanel」,動作= 「ExamplePartial」}; settings.Width = Unit.Percentage(100); settings.Height = 300; 「 – Fals

回答

2

發現發生了什麼。 這種方式不允許在SetContent()中使用asp.net標籤。 做正確的方法是:

CBsettings.SetContent(() => { 
    ViewContext.Writer.Write("<h1>Hello World</h1>"); 

    ... 

}); 

如此悲傷的IntelliSense不給一個關於什麼是錯的線索。

+1

不要忘記標記爲答案:-): – Csharp

+0

是的,在2天內,不能做到這一點 – AAlferez

相關問題