带有 @Link.To 的 c# razor 模板呈现不正确的 link

c# razor template with @Link.To renders the incorrect link

我有一个单品详情视图模板。在此模板中,它列出了 "tags" 和 "categories" 以及 link 以查看相同标签或类别的产品。

我以相同的方式为标签和类别定义 link,但呈现方式不同。

这是我的模板:

<link rel="stylesheet" href="@App.Path/assets/portfolio.css" data-enableoptimizations="bottom"/>
<div class="sc-element">
    <div class="ks-portfolio-detail">
        <div class="row">
            <div class="col-sm-12 col-md-6">@Edit.Toolbar(Content)
                <img src="@Content.Image" alt="@Content.UrlKey" class="img-responsive" />
            </div>
            <div class="col-sm-12 col-md-6">
                <div class="ks-title"><h1>@Content.Title</h1></div>
                ...
                <div class="ks-lable">Categories:</div>
                @{ int count=0; }
                @foreach(var item in AsDynamic(Content.Categories)){
                    count++;
                    <a href="@Link.To(parameters: "category=" + @item.Title)" title="@item.Title">@item.Title</a> 
                    @(count < Content.Categories.Count?" | ":"")
                }
                <br/><br/>
                <div class="ks-lable">Tags:</div>
                @{ int counter=0; }
                @foreach(var item in AsDynamic(Content.Tags)){
                    counter++;
                    <a href="@Link.To(parameters: "tag=" + @item.Name)" title="@item.Name">@item.Name</a>  
                    @(counter < Content.Tags.Count?" | ":"")
                }
            </div>
        </div>
    </div>
</div>

请注意创建类别和标签 link 的行:

<a href="@Link.To(parameters: "category=" + @item.Title)" title="@item.Title">@item.Title</a>
...
<a href="@Link.To(parameters: "tag=" + @item.Name)" title="@item.Name">@item.Name</a>

问题

标签 Link.To 用 "slashes" 渲染 link 像:

http://dnn804/portfolio/tag/Demo2

但类别呈现 link 如下:

http://dnn804/portfolio?category=Flowers

问题

谁能帮我弄清楚为什么这些 link 在使用相同的函数时呈现不同?我希望它们都显示为 "tags" link.

提前致谢。

Link.To 使用 DNN 内部 link 分辨率。我只是猜测 DNN 可能会以不同方式处理某些术语,从而导致特殊的 links。 DNN 有时确实会用 link 做一些奇怪的事情,就像在主页上一样,这就是我们使用它的原因。 但这只是一个猜测。

您可以 运行 一些实验,例如 "cat=" 而不是类别,来验证这一点。