asp.net - 如何将 ID 参数从视图传递到控制器?
问题描述
我无法将 ID 值传递给输入提交按钮中的控制器方法。我正在尝试根据用户单击 O 按钮的行来传递 ActionItemID 值。我似乎无法调用控制器中的值。
@model SQLApplication.Models.ActionItems.ActionItemsViewModel
<table class="table table-condensed table-action-items">
<tr>
<th>@Html.DisplayNameFor(model => model.Description.Status)</th>
<th>@Html.DisplayNameFor(model => model.Description.Principal)</th>
<th>@Html.DisplayNameFor(model => model.Description.CompanyName)</th>
<th>@Html.DisplayNameFor(model => model.Description.ActionItem)</th>
<th>@Html.DisplayNameFor(model => model.Description.Owners)</th>
<th>@Html.DisplayNameFor(model => model.Description.DueDate)</th>
<th>@Html.DisplayNameFor(model => model.Description.UpdatedDate)</th>
<th>@Html.DisplayNameFor(model => model.Description.CreatedDate)</th>
<th>@Html.DisplayNameFor(model => model.Description.Sales)</th>
<th></th>
</tr>
@foreach (var item in Model.Items)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.Status)</td>
<td>@Html.DisplayFor(modelItem => item.Principal)</td>
<td>@Html.DisplayFor(modelItem => item.CompanyName)</td>
<td>@Html.DisplayFor(modelItem => item.ActionItem)</td>
<td>@Html.DisplayFor(modelItem => item.Owners)</td>
<td>@Html.DisplayFor(modelItem => item.DueDate)</td>
<td>@Html.DisplayFor(modelItem => item.UpdatedDate)</td>
<td>@Html.DisplayFor(modelItem => item.CreatedDate)</td>
<td>@Html.DisplayFor(modelItem => item.Sales)</td>
<td class="right"><input type="submit" name="O" value="@item.ActionItemId" class="btn btn-default" onclick="location.href='@Url.Action("Open", "ActionItems")'" /></td>
<td class="right"><input type="submit" value="P" class="btn btn-default" onclick="location.href='@Url.Action("Index", "ActionItems")'" /></td>
<td class="right"><input type="submit" value="C" class="btn btn-default" onclick="location.href='@Url.Action("Index", "ActionItems")'" /></td>
</tr>
}
</table>
解决方案
您正在执行的重定向中没有值:
location.href='@Url.Action("Open", "ActionItems")'
如果您想id
包含一个值,请将其添加到Url.Action
方法调用中:
location.href='@Url.Action("Open", "ActionItems", new { id = item.ActionItemId })'
看起来您确实正在尝试使用一个属性,该属性本身在您的提交按钮提交时value
很有用。<form>
但我怀疑,如果没有<form>
,您的按钮没有做任何事情,所以您添加了 JavaScript 重定向。无论哪种方式都有效,真的。主要区别在于:
- 像这样的重定向只是一个 GET 请求,而不是一个 POST。如果您需要 POST,请在完成时使用表单或 AJAX 和重定向。
- 大多数时候用户都启用了 JavaScript,这不是问题。但有时确实如此,例如出于可访问性需求。确保您可以依赖使用 JavaScript 的用户。
推荐阅读
- javascript - jQuery .height() 错误
- python - 使用函数永久更新其参数之一
- javascript - 有人可以修复我使用 HTML CSS Vanilla Javscript 创建的星级评分(星级只会突出显示以前的元素)
- javascript - Javascript 如何通过线性执行检测事件?
- python - 带有 azure web 应用程序和存储的 Django 频道
- jquery - 在 Oracle Apex 日历中标记假期,例如复活节
- python - 如何使用 3 个冒号分隔符反向显示列表?
- c++ - thread_local 变量何时以及如何初始化和销毁?
- ios - 如何将 UITextField 限制为仅是数组的元素之一
- ssl - Libcurl 7.70.0 - 错误:14094417:SSL 例程:ssl3_read_bytes:sslv3 警报非法参数