我正在尝试将带有Id属性的URL列表从控制器传递到视图。
我可以传回一个<a href=...>
链接,但我不认为写一个'localhost'绝对路径是一种干净的方式来接近它。我无法传回ActionLink,因为它返回完整的字符串。这是一个简单的解决方案吗?提前谢谢。
答案 0 :(得分:1)
使用UrlHelper.Action()
方法和Request
对象的this重载,您可以获得完整的URL,包括路径参数,例如ID和应用程序的实际主机名。
string url = Url.Action("action", "controller",
new System.Web.Routing.RouteValueDictionary(new { id = id }),
"http", Request.Url.Host);
UrlHelper
在控制器中通过其Url
属性提供。
然后,您可以将此类网址传递到您的视图中。
也可以在视图中直接使用UrlHelper
来创建控制器操作的URL。取决于你是否真的需要在控制器内创建它们。
修改以回应评论:
无论您需要放置网址,您要查找的“网址构建器”仍然是UrlHelper
。您只需将它(或生成的URL)传递到您需要的地方,就像它在控制器,视图或自定义助手中一样。
要获取您提到的未排序列表HTML结构中的链接,您需要将锚点放在列表项中,如下所示:
<ul>
<li><a href="URL">Link</a></li>
...
</ul>
然后,你只需要从某个地方获取网址,这些网址来自UrlHelper
。
答案 1 :(得分:0)
简单易行。
<a href="@Url.Action("action","controller",new {id = my_var_id})">text</a>
route id =将插入到方法中的参数。
例如。
function Details(int id) {
//id has the value of my_var_id
}