【发布时间】:2009-12-11 01:32:11
【问题描述】:
我有一个动作,我想截取任何可能的整数 id 并将其放在哈希后面。 (我有一些处理 id 的 Javascript)。我这样做只是为了像我这样的 URL 黑客,他们可能会忘记我在 id 之前放置哈希的约定。
这是我的行动:
public ActionResult Edit(int? id)
{
if (id != null) return Redirect(Url.Action("Edit") + "/#" + id);
return View();
}
问题在于 Url.Action 方法保留了传递的 id。 Url.Action("Edit") 正在返回“{controller}/Edit/{id}”。我希望它只返回“{controller}/Edit”! (而且我的代码添加了一个额外的“/#{id}”)。
例如,对这个 URL 的请求:
http://localhost:2471/Events/Edit/22
正在重定向到此 URL:
http://localhost:2471/Events/Edit/22/#22
当我希望它重定向到这个 URL 时:
http://localhost:2471/Events/Edit/#22
我很沮丧。有谁知道如何获取不包含传递的 id 的当前操作的 URL?
【问题讨论】:
-
我找到了解决方法。将 Url.Action("Edit") 替换为 Url.Action("blahblah").Replace("blahblah","Edit")。
标签: asp.net asp.net-mvc asp.net-mvc-routing