gpt4 book ai didi

c# - Kentico 页面类型转换迭代显示

转载 作者:行者123 更新时间:2023-12-01 22:33:45 25 4
gpt4 key购买 nike

自定义页面类型将多选表单控件属性值存储为管道分隔字符串,例如 "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>

尝试将类型设置为stringvar会导致系统范围的异常并阻止网站加载:

<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 循环并定位 string[] 主题会导致错误“CS0103:名称“主题”在当前上下文中不存在”:

<ul class="list-unstyled">
<%
things = Eval<string>("Foobar").Split('|');
for(int i = 0; i < things.Length; i++) {
%>
<li><%= things[i] %></li>
<% } %>
</ul>

如何实现检索页面类型/文档的值,在管道字符上拆分,然后显示每个生成的 string[] 数组值?我应该使用不同类型的转换吗?

感谢您提供的任何帮助!

最佳答案

实现此目的的最简单方法是使用“文本/XML”转换类型而不是 ASCX,并使用 K# Kentico 宏语法来循环遍历分隔字符串。

https://docs.kentico.com/k10/macro-expressions/macro-syntax

然后您应该能够执行与第一个示例类似的操作。文档中的 Kentico 的 foreach 示例稍微简单一些:

{% z = ""; foreach (x in "hello") {z += x.toupper()}; z %}(返回“HELLO”)

但您应该能够修改它以满足您的需求。

这是文档中使用嵌套循环和一些 HTML 的另一个示例:

{%
orders = ECommerceContext.CurrentCustomer.AllOrders;
if (orders.Count > 0) {
result = "<ul>";
foreach (order in orders) {
foreach (item in order.OrderItems)
{ result += "<li>" + item.OrderItemSKUName + "</li>" }
};
return result + "</ul>";
}%}

关于c# - Kentico 页面类型转换迭代显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47059719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com