【问题标题】:How to return Url string from Controller a controller in mvc 4如何从控制器返回Url字符串mvc 4中的控制器
【发布时间】:2015-04-11 10:16:48
【问题描述】:

请我尝试在我的 MVC 应用程序中动态生成我的 Url 超链接。

<a href='http://facebook.com/myPage'>Facebook</a>

以上链接将我带到我的 facebook 主页。我希望以后能够更改 url,因为页面名称尚未确定。所以我尝试了

<a href='@Url.Action("GetFaceBookLink", "Home")'>Facebook</a>

在我的控制器中

 public ActionResult GetFaceBookLink()
        {
            string facebook = repository.SystemSettings.FirstOrDefault().FacebookLink;

            return this.Content(facebook);
        }

我的字符串 facebook = "http://facebook.com/mypage" 。我想像往常一样被重定向到我的 facebook 主页。但是,当我单击时,它会在黑色页面中返回字符串 url 而无需重定向。请问我如何重定向?我如何做到这一点?任何帮助将不胜感激。

【问题讨论】:

  • 你需要自定义助手
  • @EhsanSajjad 我对返回的 url 字符串感到困惑。请任何关于自定义助手的教程、链接或帮助?
  • 您可以创建一个局部视图并使用 RenderAction 在主视图上渲染它
  • 你也可以这样做:&lt;a href='@Html.Action("GetFaceBookLink", "Home")'&gt;Facebook&lt;/a&gt;
  • 太棒了。有用 。但只是好奇为什么 Html.Action 有效而 Url 无效?我虽然因为我们在这里处理 url 所以 Url.Action 应该做的伎俩?

标签: asp.net-mvc


【解决方案1】:

这里需要Html.Action 助手:

&lt;a href='@Html.Action("GetFaceBookLink", "Home")'&gt;Facebook&lt;/a&gt;

Url.Action 不调用 action,它使用 Controller 和 Action 名称生成 url

【讨论】:

  • 先生,如果您有空,可以帮我看看这个 Angular js 问题吗?自从yest以来一直在努力解决它并且无法让它继续下去。一切都很好,但我的模板没有返回。 goo.gl/KtKMpa
【解决方案2】:

您可以通过

从控制器重定向到另一个站点
public ActionResult GetFaceBookLink() {
return Redirect("http://facebook.com/mypage");
}

【讨论】:

  • 但我不能在我的情况下使用Redirect("http://facebook.com/mypage")。我收到错误 Child actions are not allowed to perform redirect actions," 。我在我的 Layoutpage 中执行此操作。页面正文已经呈现,现在控制器返回重定向,我猜这就是错误的原因。尽管如此,这是一个很好的解决方案。谢谢:)。
  • @NuruSalihu 查看这些网址以获取更多信息*.com/questions/2056421/…*.com/questions/25015833/…