如何在 Kentico 9 中使用通配符 URL?
How to use Wildcard URLs in Kentico 9?
我尝试在我的项目中使用通配符 URLs,但它对我不起作用。我将页面 URL 设置为 /path/to/page/{UserId}
(我还尝试了 UserName
和 NinjaMaster
通配符名称以防止命名冲突)但我无法在模板或 Web 部件中访问此变量(我只尝试了 Repeater web 部件)。
在我的 HTML 模板中,我尝试 {% UserId #%}
、{% UserName #%}
和 {% NinjaMaster #%}
写入传递值,但没有任何反应。我尝试了 URLs,例如 /path/to/page/12345
、/path/to/page/?UserId=12345
、/path/to/page/?userid=12345
等
URL中的通配符名称实际上是一个查询字符串。
访问 /path/to/page/5
时(通配符 URL 为 /path/to/page/{UserId}
),URL 被重写为 /CMSPages/PortalTemplate.aspx?aliasPath=/actual/path/to/page&UserId=5
要访问宏中的查询字符串值,请使用 {% QueryString.UserId %}
了解 query string macros。
您可以使用两种类型的语法:{? UserId ?}
或 {% QueryString.UserId %}
我直接引用 Kentico's documentation
要从 URL 加载查询字符串参数的值,请使用以下格式的宏:
{? parameter ?}
查询字符串宏支持所有 K# 语法。所有可用查询字符串参数的名称自动用作存储相应参数值的变量。
例如,在具有 URL 的页面上,如 /Home.aspx?nodeid=10,{? nodeid ?}
解析为 10。
或者,您可以在标准宏中获取查询字符串参数的值:
{% QueryString.parameter %}
我尝试在我的项目中使用通配符 URLs,但它对我不起作用。我将页面 URL 设置为 /path/to/page/{UserId}
(我还尝试了 UserName
和 NinjaMaster
通配符名称以防止命名冲突)但我无法在模板或 Web 部件中访问此变量(我只尝试了 Repeater web 部件)。
在我的 HTML 模板中,我尝试 {% UserId #%}
、{% UserName #%}
和 {% NinjaMaster #%}
写入传递值,但没有任何反应。我尝试了 URLs,例如 /path/to/page/12345
、/path/to/page/?UserId=12345
、/path/to/page/?userid=12345
等
URL中的通配符名称实际上是一个查询字符串。
访问 /path/to/page/5
时(通配符 URL 为 /path/to/page/{UserId}
),URL 被重写为 /CMSPages/PortalTemplate.aspx?aliasPath=/actual/path/to/page&UserId=5
要访问宏中的查询字符串值,请使用 {% QueryString.UserId %}
了解 query string macros。
您可以使用两种类型的语法:{? UserId ?}
或 {% QueryString.UserId %}
我直接引用 Kentico's documentation
要从 URL 加载查询字符串参数的值,请使用以下格式的宏:
{? parameter ?}
查询字符串宏支持所有 K# 语法。所有可用查询字符串参数的名称自动用作存储相应参数值的变量。
例如,在具有 URL 的页面上,如 /Home.aspx?nodeid=10,{? nodeid ?}
解析为 10。
或者,您可以在标准宏中获取查询字符串参数的值:
{% QueryString.parameter %}