У меня есть следующий код на одной из моих страниц aspx:
<% 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.
Есть ли способ создать элемент управления и передать Guid на странице aspx? Мне бы очень не хотелось повторяться и создавать эти элементы управления в коде только из-за этого ...
ПРИМЕЧАНИЕ. Свойство Key объекта зависимости является - это Guid.





Ключевым свойством объекта Dependency может быть Guid, но является ли свойство DependencyKey DependencyEditor также Guid? Если это не так, то в противном случае правильный TypeConverter не будет вызываться при назначении.
Если я не ошибаюсь, вы также можете использовать dep.Key.ToString ().
Вы используете MVC? Я думаю, что это происходит потому, что вы используете синтаксис% =, который всегда пытается вывести строку. Если вы не используете MVC, используйте Repeater, который позволит вам использовать синтаксис% #. Это приведет к правильному преобразованию типа при привязке данных.
ваш контроль принимает значение и предполагает его GUID? Вы пробовали создать экземпляр GUID со значением? Похоже, это проблема с гипсом
хорошо, вот в чем дело ... попробуйте использовать символ # вместо символа =. Я воспроизвел вашу проблему и решил проблему с компиляцией.
Он должен выглядеть так: «<% # dep.Key%>»
удачи!
Предполагая, что dep.Key является строковым представлением guid ... а DependencyKey является свойством типа Guid
<ctl:DependencyEditor DependencyKey = "<%= new Guid(dep.Key) %>" runat = "server" />
Да, свойство DependencyKey также является Guid.