gpt4 book ai didi

ASP.NET Razor - 我可以在三元运算符中放置一个链接吗?

转载 作者:可可西里 更新时间:2023-11-01 13:13:20 25 4
gpt4 key购买 nike

我的 MVC4 View 中有一个三元运算符:

@(modelrecord.Website == null ? "": modelrecord.Website.Replace("http://","") )

这行得通,但我想让网站记录一个超链接。这可能吗?

注意:我正在替换“http://”前缀,因为它很难看。

如果我用 Html.Raw 放入实际字符串,尖括号被转义,我仍然没有得到链接。

最佳答案

您可能应该使用 DataAnnotations@Html.DispayFor 助手。

public class ModelRecord
{
[DataType(DataType.EmailAddress)]
public String EmailAddress { get; set; }

[DataType(DataType.Url)]
public String Website { get; set; }
}

然后:

email me at @Html.DisplayFor(x => x.EmailAddress)
or visit me online at @Html.DisplayFor(x => x.Website)

DataTypeAttribute处理 url、电子邮件等内容并根据需要格式化它们。

如果你想自定义所有的Urls,你可以创建一个display template为此:

~/Views/Shared/DisplayTemplates/Url.cshtml

@model String
@if (!String.IsNullOrEmpty(Model))
{
<a href="@Model">@Model.Replace("http://", "")</a>
}
else
{
@:Default text when url is empty.
}

DisplayTemplates(如 EditorTemplates)是 MVC 使用的基于约定的路径。因此,您可以将模板放在 Shared 目录中以在整个站点范围内应用此更改,或者您可以将文件夹放在其中一个 Controller 文件夹中以仅将其应用于该 Controller (例如~/Views/Home/Displaytemplates/Url.cshtml)。此外,Url 是与 DisplayType 一起使用的预定义模板之一,还有以下内容:

  • 网址
  • 电子邮件地址
  • 隐藏输入
  • HTML
  • 正文

关于ASP.NET Razor - 我可以在三元运算符中放置一个链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15973989/

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