Я не вижу, чтобы получить идентификатор, который я отправляю в html.ActionLink в моем контроллере, вот что я пытаюсь сделать
<li>
<%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li>
public ActionResult Modify(string ID)
{
ViewData["Title"] =ID;
return View();
}
Это то, что я рекомендовал в учебнике, но он не работает, он также помещает? Length = 5 в конец URL-адреса!
Заранее спасибо!
изменить: вот маршрут, который я использую, он по умолчанию
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
похоже, кто-то отклонил два предложения ниже, но не опубликовал свое решение!





Не ставьте @ перед идентификатором
new { id = "1" }
Фреймворк «переводит» его в размер при несоответствии параметра / маршрута
Не похоже, что вы используете правильную перегрузку ActionLink. Попробуй это:-
<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>
Предполагается, что ваше представление находится в папке / Views / Villa. Если нет, то я подозреваю, что вам нужно: -
<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>
В MVC 4 вы можете связать одно представление с другим контроллером, передавая идентификатор или первичный ключ через
@Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null)
Идентификатор будет работать и со знаком @ впереди, но после этого мы должны добавить один параметр. то есть null
выглядит как:
@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id = "Id_Value"}, null)
На MVC 5 довольно похоже
@Html.ActionLink("LinkText", "ActionName", new { id = "id" })
Хороший вызов. Проблема заключалась в том, что первая перегрузка этой функции приняла «HtmlAttributes» в качестве четвертого параметра. Таким образом, добавление ", null" заставляет компилятор использовать ваш встроенный объект в качестве параметров маршрута.