【发布时间】:2014-11-13 14:21:37
【问题描述】:
编辑:我已经阅读并实现了 this article 中的方法,但这不起作用。
我有正确填充的下表。
<table class="table">
<tr>
<th>Product</th>
<th>File Name</th>
<th>Release Date</th>
<th>Size</th>
<th></th>
</tr>
@{
if (Model != null)
{
foreach (var item in Model.Uploads)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.Product)</td>
<td>@Html.DisplayFor(modelItem => item.DisplayName)</td>
<td>@Html.DisplayFor(modelItem => item.ReleaseDate)</td>
<td>@Html.DisplayFor(modelItem => item.Size)</td>
<td>@Html.ActionLink("Delete File", "Upload", "Tools", new { id = item.DisplayName }, null)</td>
</tr>
}
}
}
</table>
我也有一个带有动作的控制器
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> DeleteUser(
AdministratorViewModel model, string userName)
{
// Do amazing stuff...
return Index();
}
我想将选择删除的用户名传递给此操作。我想我可以用上面的@Html.ActionLink 来实现这一点,但这不是要走的路。
如何将选定的用户名传递给我的操作方法?
感谢您的宝贵时间。
编辑:将Ajax代码改成如下(使用Index作为被调用方法)
@Ajax.ActionLink(
"Remove",
"Index",
"Tools",
new
{
model = item,
userName = item.UserName
},
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST"
})
并将DeleteUser(AdministratorViewModel model, string userName) 方法的名称更改为Index(AdministratorViewModel model, string userName)。现在这会触发ToolsController 中的Index 方法。但是调用的方法是 NON-POST 属性方法(!?)所以我现在有两个问题:
- 怎么会调用未标记
[HttpPost]属性的方法? - 为什么我可以使用下面 Ben Griffiths 的回答来调用
DeleteUser方法? - 如何在 Tools 控制器中调用我的
DeleteUser方法并传入模型和我要删除的用户名?
感谢您的宝贵时间。
【问题讨论】:
标签: c# asp.net html razor asp.net-mvc-5