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

Другие вопросы по тегам