在我正在使用的 Razor 文件中:
<div>
@Umbraco.Field("myText")
</div>
获取并显示myText
属性的内容。 myText的实际内容是Textstring
,是:
<a href="/main/somefile"> Hello </a>
我想要做的是在从Razor调用myText时动态更改href内部的路径。例如,我希望有时 Hello 超链接可以驱动到/main/somefile
,有时可以驱动到/main/otherfile
。这可能吗?怎么样?
答案 0 :(得分:0)
如果没有为新文本创建新属性,则无法更改它,如果它位于同一文档中。
所以你必须制作更多属性,比如
@会将myText-1 会将myText @-2
等等。
答案 1 :(得分:0)
您的问题是缺少一些信息。我假设您想要根据某些条件更改链接?
我要做的只是将Umbraco中的输入文本更改为:
<a href="{link}"> Hello </a>
然后我会在当前页面上获取属性的值,并根据条件将字符串{link}
替换为应插入的任何链接,并将其保存在变量中。然后使用模板中替换的链接输出该变量。
另一种(更漂亮的)方法是创建一个包装此功能的Html帮助程序: https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/views/creating-custom-html-helpers-cs#creating-html-helpers-with-static-methods
实施例:
@{
var myText = Model.GetPropertyValue("myText").ToString();
if (something)
{
myText = myText.Replace("{link}", "somefile");
}
else
{
myText = myText.Replace("{link}", "someotherfile");
}
@myText
}