在Sitecore中,我有一个控制器呈现,它动态地遍历多个列表中的所有导航条项,并将它们输出到视图中。
我尝试了以下代码:
<li class="first-child"><a href="@i.Url">@i.Name</a></li> 但是,当我在浏览器中检查元素时,会出现这样的情况:
<a href="<link linktype="external"; url="";https://www.example.com/en-gb/london/eat"; anchor="" target="" />">Eat</a>上面的行在吃之前产生一个额外的>。我要做什么
我还在视图中尝试过这种语法:
<li class="first-child">
<a href="@Html.Sitecore().Field("Url", i);">
@Html.Sitecore().Field("Name", i);
</a>
</li>当我检查浏览器中的元素时,我得到以下内容:
<a href=";"> ; </a>我需要帮助渲染这个在视图中,任何帮助的语法将是非常感谢的。
编辑
我的Controller操作方法如下所示:
public ActionResult FooterCities()
{
var model = new List<FooterCities>();
var footercitycategories = Sitecore.Context.Item;
var item = (Sitecore.Data.Fields.MultilistField)footercitycategories.Fields["FooterCities"];
foreach (var m in item.GetItems())
{
model.Add(
new FooterCities()
{
Name = m["Name"],
CityUrl = m["CityUrl"]
});
}
return View("/Views/Example/Layouts/LayoutRenderings/ViewRendering/FooterCities.cshtml", model);
}发布于 2016-10-31 10:58:48
试着做这样的事情:
@Html.Sitecore().BeginField("Url", new { haschildren= true })
@Html.Sitecore().Field("Name")
@Html.Sitecore().EndField()上面的代码是从另一个复制的,所以请回答如何在链接字段中使用文本字段:https://stackoverflow.com/a/32848931/157833。
或另一种选择:
@Html.Sitecore().Field("Url", new {text = @Html.Sitecore().Field("Name")})杰森解释:https://theagilecoder.wordpress.com/2014/10/06/sitecore-mvc-editable-links-wrapping-text-and-images/
假设您是i是Item类的对象,则应该将其作为第二个参数传递。方法的定义是:
public virtual HtmlString Field(string fieldName, Item item, object parameters)所以在你的情况下应该是:
@Html.Sitecore().Field("Url", i, new {text = @Html.Sitecore().Field("Name")}) 显示控制器代码后,编辑
你应该改变模型生成的方式。使用:
foreach (var m in item.GetItems())
{
Sitecore.Data.Fields.LinkField urlField = m.Fields["CityUrl"];
string url = urlField.GetFriendlyUrl();
model.Add(
new FooterCities()
{
Name = m["Name"],
CityUrl = url
});
}然后在我们看来:
<li class="first-child">
<a href="i.CityUrl">
i.Name
</a>
</li>https://stackoverflow.com/questions/40340723
复制相似问题