【问题标题】:How to set property to Guid in aspx page如何在 aspx 页面中将属性设置为 Guid
【发布时间】:2008-10-06 14:42:59
【问题描述】:

我的一个 aspx 页面中有以下代码:

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

当我运行它时,我收到以下错误:

解析器错误消息:无法从“DependencyKey”属性的字符串表示“”创建类型为“System.Guid”的对象。

有什么方法可以创建控件并在 aspx 页面中传递 Guid?我真的很讨厌不得不循环并在后面的代码中创建这些控件只是因为那个......

注意:Dependency 对象上的 Key 属性一个 Guid。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    Dependency 对象的 key 属性可能是 Guid,但是 DependencyEditor 的 DependencyKey 属性也是 Guid 吗?如果不是,它应该是,否则正确的 TypeConverter 将不会在分配时被调用。

    如果我没记错的话,你也可以使用 dep.Key.ToString() 。

    【讨论】:

    • 是的,DependencyKey 属性也是一个 Guid。
    • 你在使用 MVC 吗?我认为发生这种情况的原因是因为您使用的是 %= 语法,它总是试图输出一个字符串。如果您不使用 MVC,请使用中继器,这将允许您使用 %# 语法。这将对数据绑定执行正确的类型转换。
    【解决方案2】:

    您的控件是否获取该值并假设它是一个 GUID?您是否尝试过使用该值实例化 GUID?看起来这是一个演员表问题

    【讨论】:

      【解决方案3】:

      好的,这就是交易...尝试使用# 符号而不是= 符号。我复制了您的问题,并且解决了编译问题。

      它应该看起来像这样“”

      祝你好运!

      【讨论】:

        【解决方案4】:

        假设 dep.Key 是一个 guid 的字符串表示形式......而 DependencyKey 是一个 Guid 类型的属性

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-18
          • 2012-02-13
          • 2020-04-27
          • 1970-01-01
          • 2011-12-16
          相关资源
          最近更新 更多