我是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>
当我使用文本框时,ID会发布,但不会在我使用该actionlink时发布。如何获取动作链接以发布ID?
同样,我是新手,请原谅我,如果我不是很好地解释它。
答案 0 :(得分:1)
ActionLink
不会发布值,如果您的帖子表示您希望根据您执行此操作的ID加载页面(这是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)
答案 1 :(得分:0)
您正在使用Html.ActionLink
的错误重载,请尝试此选择:
@Html.ActionLink(item.MetadataDocumentSetId.ToString(), "ShowDocumentMetaData",
"Metadata", new { id = item.MetadataDocumentSetId }, null)
答案 2 :(得分:0)
试试这个
@Html.ActionLink("Title","Action", "Controller", new { id = item.MetadataDocumentSetId }, null)
答案 3 :(得分:0)
尝试
<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中传递参数