ASP.NET MVC передает идентификатор в ActionLink на контроллер
Я не вижу, чтобы получить идентификатор, который я отправляю в 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-адреса!
Спасибо заранее!
edit: вот маршрут, который я использую, по умолчанию
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
Кажется, кто-то снизил два предложения ниже, но не разместил их решение!
Ответы
Ответ 1
Не похоже, что вы используете правильную перегрузку ActionLink. Попробуйте следующее: -
<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>
Предполагается, что ваше представление находится в папке /Views/Villa. Если нет, то я подозреваю, что вам нужно: -
<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>
Ответ 2
В MVC 4 вы можете связать один вид с другим контроллером, передавая Id или первичный ключ через
@Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null)
Ответ 3
Не помещайте @перед идентификатором
new { id = "1" }
Рамка "переводит" ее в? Длина, когда есть несоответствие в параметре/маршруте
Ответ 4
В MVC 5 очень похож
@Html.ActionLink("LinkText", "ActionName", new { id = "id" })
Ответ 5
Идентификатор будет работать с знаком @
спереди, но после этого мы должны добавить один параметр. то есть null
выглядят следующим образом:
@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null)