我的cshtml页面中有下一个foreach,它允许我在每个Model项中迭代
@foreach (var item in Model)
{
<div class="date">
@item.pubDate
</div>
<a href="@Url.RouteUrl("Details", new { action = "Details", controller = "News", id = item.id, title = item.title })">
<img src="some route" alt="some alt" />
</a>
}现在它运行得很好,foreach循环中的每个元素都有一个url,其内容如下
http://something.com/News/Details/1/first-title
http://something.com/News/Details/2/second-title可以使用下面的内容创建urls
http://something.com/News/Details/first-title
http://something.com/News/Details/second-title但是我仍然可以向我的控制器发送id参数吗?
提前感谢
发布于 2013-05-01 09:51:05
您可以只传递id参数的title属性。
@Url.RouteUrl("Details",
new { action = "Details", controller = "News", id = item.title})然后在你的操作方法中设置id参数的类型为字符串:
public ActionResult Details(string id)或者,您可以创建自定义路由,如von-v的答案中所示。只需确保它高于默认路由即可。
https://stackoverflow.com/questions/16311595
复制相似问题