我正在尝试将一个带有Id属性的URL列表从一个控制器传递给一个视图。我可以回传一个<a href=...>
链接,但我不认为写一个'localhost‘绝对路径是解决这个问题的一种干净的方法。我不能回传一个ActionLink,因为它返回完整的字符串。这个问题有没有简单的解决方案?提前谢谢。
发布于 2011-12-16 03:36:01
使用UrlHelper.Action()
方法和Request
对象的重载,您可以获得一个完整的URL,包括路由参数,比如ID和应用程序的实际主机名。
string url = Url.Action("action", "controller",
new System.Web.Routing.RouteValueDictionary(new { id = id }),
"http", Request.Url.Host);
通过其Url
属性,可以在控制器中使用UrlHelper
。
然后,您可以将这样的URL传递到视图中。
还可以直接在视图中使用UrlHelper
为控制器操作创建URL。取决于您是否真的需要在控制器中创建它们。
编辑回复评论的:
在您需要放置URL的任何地方,您正在寻找的"URL生成器“仍然是UrlHelper
。您只需将它(或生成的URL)传递到您需要它的地方,在控制器、视图或自定义帮助器中。
要获得您提到的未排序列表HTML结构中的链接,您需要将锚点放在列表项中,如下所示:
<ul>
<li><a href="URL">Link</a></li>
...
</ul>
再说一次,你只需要从某个地方获取URL,那就是从UrlHelper
。
发布于 2011-12-16 03:41:35
简单和容易。
<a href="@Url.Action("action","controller",new {id = my_var_id})">text</a>
路由id =要插入到方法中的参数。
例如:
function Details(int id) {
//id has the value of my_var_id
}
https://stackoverflow.com/questions/8525528
复制相似问题