【发布时间】:2014-10-15 01:51:04
【问题描述】:
这是我的代码:
Controller.cs
[Route("{controller}/{slug}")]
public ActionResult Details(int? id, string slug)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Tv tv = db.Tv.Find(id);
if (tv == null)
{
return HttpNotFound();
}
return View(tv);
}
{slug} 是一个标题。 但是我的网址显示
{controller}/{slug}?id=4
现在我必须将 ID 传递给控制器,这样我才能在数据库中找到记录,但我不希望它在 URL 中。
如何删除 ID?
【问题讨论】:
-
如果你想在这个方法中访问
id,它必须作为一个参数以某种方式进来。由于这可能是一个GET方法,所以将它放在 URL 中是有意义的。您能否举例说明您希望 URL 的外观?也许您希望id作为路径的一部分,如/Details/some-title/54? -
所以
/Details/54将是原始路径。但是我希望 URL 看起来像 {controller}/{slug}。我需要控制器中的 Id,但不希望它在 URL 中
标签: c# asp.net asp.net-mvc routing