我正试图使用户能够接受/拒绝一个项目(),在表中的任何一个具有PaginatedList的项目中声明一个原因。
@model PaginatedList<ItemViewModel>
<table>
<thead>
...
</thead>
for (int i = 0; i < Model.Count(); i++){
var item = Model.ElementAt(i);
...
<tr>
<td><input asp-for="@item.AdditionalText" type="text" /></td>
<td>
<form asp-action="AddAdditionalText" method="post" asp-route-trackID="@item.itemID" asp-route-notes="@item.AdditionalText">
<input value="Accept Item" type="submit" class="btn btn-success btn-lg">
</form>
</td>
<td>
<form asp-action="AddAdditionalText" method="post" asp-route-trackID="@item.itemID" asp-route-notes="@item.AdditionalText">
<input value="Reject Item" type="submit" class="btn btn-success btn-lg">
</form>
</td>
<tr>
...数据被提交给控制器,在操作中,我只看到提交的itemID,而没有看到注释。它是空的,因为它脱离了形式。我试过了但不起作用。你能提出一个解决办法吗?
发布于 2017-11-28 18:27:31
您应该将注释包含在正在提交的form中。将AdditionalText的输入元素保持在提交按钮所在的表单中。还在提交按钮上保留一个name属性,以便在http post操作方法中知道单击了哪个按钮。
<form asp-action="AddAdditionalText" method="post" asp-route-trackID="@item.itemID">
<input asp-for="@item.AdditionalText" type="text" />
<input value="Accept Item" name="reason" type="submit" class="btn">
<input value="Reject Item" name="reason" type="submit" class="btn">
</form>在行动方法上。
public ActionResult AddAdditionalText(int trackId,string AdditionalText, string reason)
{
if (reason == "Accept Item")
{
}
else
{
}
// to do : return something
}https://stackoverflow.com/questions/47538448
复制相似问题