Actionlink не публикует идентификатор
Я новичок в ASP.net и MVC, так что прости меня, если это кажется глупым вопросом.
У меня есть следующее Actionlink:
<span>@Html.ActionLink(item.MetadataDocumentSetId.ToString(), "ShowDocumentMetadata", new { controller = "Metadata", id = item.MetadataDocumentSetId })</span>
У меня также есть это (в настоящее время закомментировано):
<span>@Html.TextBoxFor(x => item.MetadataDocumentSetId, new { style = "display:inline"})</span>
Когда я использую текстовое поле, идентификатор будет публиковаться, но не тогда, когда я использую эту ссылку. Как я могу получить actionlink для публикации идентификатора?
Опять же, я новичок в этом, так что прости меня, если я не слишком хорошо все объясняю.
4 ответа
ActionLink
не публикует значения, если вы подразумеваете пост, что хотите загрузить страницу на основе идентификатора, который вы должны сделать (это GET, а не POST):
Контроллер метод:
public ActionResult GetById(string id)
{
var currentId = id;
// do something with currentId
return this.View()
}
ActionLink:
@Html.ActionLink("link text", "GetById", "MyController", new { id = "12-34"}, null)
Вы используете неправильную перегрузку Html.ActionLink
попробуйте это вместо:
@Html.ActionLink(item.MetadataDocumentSetId.ToString(), "ShowDocumentMetaData",
"Metadata", new { id = item.MetadataDocumentSetId }, null)
Попробуй это
@Html.ActionLink("Title","Action", "Controller", new { id = item.MetadataDocumentSetId }, null)
Пытаться
<span>@Html.ActionLink("Link text", "ShowDocumentMetadata", "Metadata", new { id = item.MetadataDocumentSetId.ToString()}, null)</span>
Вы выбираете неправильный метод ActionLink. Для получения дополнительной информации - https://msdn.microsoft.com/en-US/library/system.web.mvc.html.linkextensions_methods(v=vs.118).aspx
Но вы хотите передать параметр в RouteValues