2008-10-06 66 views
0

我已經在我的aspx頁面一個下面的代碼:如何在aspx頁面設置屬性的Guid

<% foreach (Dependency dep in this.Common.GetDependencies(this.Request.QueryString["Name"])) 
    { %> 
     <ctl:DependencyEditor DependencyKey='<%= dep.Key %>' runat="server" /> 
<% } %> 

當我運行它,我得到以下錯誤:

Parser Error Message: Cannot create an object of type 'System.Guid' from its string representation '<%= dep.Key %>' for the 'DependencyKey' property.

有什麼我可以創建一個控件並通過aspx頁面中的Guid?我真的很討厭必須循環,並在後面的代碼中創建這些控件,僅僅是因爲它......

注意:依賴項對象上的Key屬性是 guid。

回答

1

Dependency對象的關鍵屬性可能是Guid,但是DependencyEditor的DependencyKey屬性也是Guid?如果不是,它應該是,否則正確的TypeConverter不會在分配時被調用。

如果我沒有弄錯,你也可以使用dep.Key.ToString()。

+0

是在DependencyKey屬性是一個GUID也是一個屬性。 – 2008-10-06 14:58:35

+0

你使用MVC嗎?我認爲這是因爲你正在使用%=語法,它總是試圖超過一個字符串。如果您未使用MVC,請使用Repeater,它將允許您使用%#語法。這將在數​​據綁定上執行正確的類型轉換。 – 2008-10-06 15:26:16

0

是您的控件取值並假設其GUID?您是否嘗試過使用該值實例化GUID?看起來像這是一個鑄造問題

0

好的,這裏的交易...嘗試使用#符號而不是=符號。我複製了你的問題,並通過了編譯問題。

它應該是這樣的 「<%#dep.Key%>」

好運!

0

假設dep.Key是一個GUID的字符串表示...和DependencyKey是類型GUID

<ctl:DependencyEditor DependencyKey="<%= new Guid(dep.Key) %>" runat="server" /> 
相關問題