Url.Action在Controller中不起作用?

时间:2017-04-11 01:49:49

标签: asp.net-mvc

以下代码没有错误,但它不起作用,这属于一个动作名称GetAction,我想要一个链接转到动作ViewDetails(String id),所有这些都在HomeController中: / p>

String getaction = "";
getaction += "<a href=\"@Url.Action(\"ViewDetails\", \"Home\", new { id = \"ID01\"}, null)\">Click here</a>";
ViewBag.View = getaction;
return View();
GetAction视图中的

:@ Html.Raw(ViewBag.View)

我可以看到链接名称&#34;点击此处&#34;,但是当我点击它时,错误:

  

HTTP错误404.0 - 未找到       您要查找的资源已被删除,名称已更改或暂时不可用。

2 个答案:

答案 0 :(得分:1)

你不能像这样嵌入剃刀代码,它会像文字一样对待它。您也可以立即评估URL,它可以执行与视图相同的操作。

String getaction = "";
getaction += "<a href=\""+UrlHelper.Action("ViewDetails", "Home", new { id = "ID01"}, null)+"\">Click here</a>";
ViewBag.View = getaction;
return View();

答案 1 :(得分:0)

Html.Raw无法按预期呈现字符串。允许输出包含html元素的文本。你可以使用以下代码

var url = Url.Action("ViewDetails", "Home", new { id = "ID01"}, null);

var getaction = new TagBuilder("a");
getaction.MergeAttribute("href", url);
getaction.SetInnerText("Click here");

ViewBag.View = getaction;