У меня есть действие, в котором я хочу перехватить любой возможный целочисленный идентификатор и поместить его за хешем. (У меня есть Javascript, который обрабатывает идентификатор). Я делаю этот дополнительный шаг только ради таких URL-хакеров, как я, которые могут забыть о моем соглашении ставить хэш перед идентификатором.
Вот мои действия:
public ActionResult Edit(int? id)
{
if (id != null) return Redirect(Url.Action("Edit") + "/#" + id);
return View();
}
Проблема в том, что метод Url.Action сохраняет переданный идентификатор. 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
Я разочарован. Кто-нибудь знает, как получить URL-адрес текущего действия, который не включает переданный идентификатор?