【问题标题】:How to return a link from an MVC controller with return type as "Content"如何从返回类型为“内容”的 MVC 控制器返回链接
【发布时间】:2018-11-11 23:08:50
【问题描述】:

我想返回一个内容类型,但内容中有一个 URL。下面是我的代码。

public ActionResult Safari() {
    return Content("<html>Click this URL <a href ="https://www.google.com/chrome"</html>");
}

我希望将链接 Google.com 呈现为超链接而不是文本。出于某种原因,我不想返回 view.cshtml 页面。

尝试次数:

return Content("<html>Click this URL <a href ="https://www.google.com/chrome"</html>");
return Content(@"<html>Click this URL <a href ="https://www.google.com/chrome"</html>");
return Content("<html>Click this URL <a href =/"https://www.google.com/chrome/"</html>");

其他尝试:

public ActionResult Safari() {
    return Content("< a href = 'google.com/chrome' > Click this URL </ a > ");
}

【问题讨论】:

  • 好吧,第一个和最后一个示例没有正确转义引号。应该是 \" 来转义引用。所以我不知道这是否能解决问题。除此之外,为什么不只返回一个字符串?此外,是否有可能内容被编码,在这种情况下标签以字符串形式出现?
  • 你在第二行的做法很好(但不需要&lt;html&gt;&lt;/html&gt;)。问题出在显示器上,那么您如何在视图上显示内容?将该代码添加到您的问题中。
  • 是的,html 的东西如果插入到页面中间会破坏 DOM。如果替换所有东西,它会起作用,或者如果开始一个新的窗口/标签。
  • 我只想要一个带有此消息的空白页面并将链接作为超链接。 P.S:我不想使用视图
  • @TravisJ:我尝试更改为正确的“/”转义序列,它编译正确,但整个 elink 在 UI 中消失了。

标签: c# html asp.net-mvc asp.net-mvc-5


【解决方案1】:

如果您只想要一个简单的 HTML 页面,那么您必须提供带有 &lt;body&gt; 标记的有效页面 HTML。您可以单独返回链接而不使用 &lt;html&gt; 标记,如下所示:

return Content("<a href ='https://www.google.com/chrome'>Click this URL</a>");

并希望浏览器将缺少的&lt;html&gt;&lt;head&gt;&lt;body&gt; 标签添加到您的页面。所有主流浏览器都会这样做。

但是,最好提供完整的 HTML 代码,而不用担心浏览器:

return Content("<html><head></head><body><a href ='https://www.google.com/chrome'>Click this URL</a></body></html>");

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多