【发布时间】:2017-11-28 21:02:43
【问题描述】:
自定义页面类型将多选表单控件属性值存储为管道分隔字符串,例如 "foo|bar"。
在页面类型 ASCX 转换中,我能够使用以下方法成功检索和显示 foo|bar 属性值:
<div><%# Eval("Foobar") %></div>
目标是在管道 | 字符上拆分此字符串值并输出每个值,但我无法使用页面类型转换 ASCX 语法来实现这一点。
尝试以下操作会给我错误“错误 CS0230:foreach 语句中都需要类型和标识符”:
<ul>
<% foreach (thing in Eval<string>("Foobar").Split('|')) { %>
<li><%= thing %></li>
<% } %>
</ul>
<ul class="list-unstyled">
<%
things = Eval<string>("Foobar").Split('|');
foreach (thing in things) {
%>
<li><%= topic %></li>
<% } %>
</ul>
尝试将类型设置为string 或var 会导致系统范围的异常并阻止网站加载:
<ul>
<% foreach (string thing in Eval<string>("Foobar").Split('|')) { %>
<li><%= thing %></li>
<% } %>
</ul>
<ul>
<% foreach (var thing in Eval<string>("Foobar").Split('|')) { %>
<li><%= thing %></li>
<% } %>
</ul>
<ul class="list-unstyled">
<%
var things = Eval<string>("Foobar").Split('|');
foreach (var thing in things) {
%>
<li><%= thing %></li>
<% } %>
</ul>
尝试 for 循环并以字符串 [] 主题为目标会导致错误“CS0103:当前上下文中不存在名称‘主题’”:
<ul class="list-unstyled">
<%
things = Eval<string>("Foobar").Split('|');
for(int i = 0; i < things.Length; i++) {
%>
<li><%= things[i] %></li>
<% } %>
</ul>
如何实现检索页面类型/文档的值,在管道字符上拆分,然后显示每个结果 string[] 数组值?我应该使用其他类型的转换吗?
感谢您提供的任何帮助!
【问题讨论】: