【发布时间】:2018-11-25 02:03:49
【问题描述】:
当我尝试将对象从我的视图传递到我的 HttpPOST 方法时,我似乎遇到了困难。
单击视图中的按钮后,代码会触发 POST 方法,但没有数据通过。我尝试更新方法参数并传递不同的值(如 Ints),但无济于事。
这是我的 HttpPOST 方法:
[HttpPost]
public async Task<ActionResult> BookClass(MemberClassViewModel memberClassViewModel)
{
return RedirectToAction("Index");
}
传入的参数似乎总是为NULL。
这是我的视图的代码。模型是 IEnumerable 类型,即我的 ViewModel 对象的列表,在我的例子中是 3 个对象。我想要实现的是,单击相应的按钮,将导致一个对象被传递回我的 HttpPOST 方法。我尝试在“value”参数中传递各种值。
@model IEnumerable<GymTracker.ViewModel.MemberClassViewModel>
@{
ViewData["Title"] = "BookClass";
}
<h2>Book Class</h2>
@foreach (var item in Model)
{
<form method="post">
<div>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ClassName)
</dt>
<dd>
@Html.DisplayFor(modelItem => item.ClassName)
</dd>
<dt>
<button>Book Class</button>
<input type="hidden" asp-action="BookClass" asp-controller="Members" value="@item"/>
</dt>
</dl>
</div>
</form>
}
谢谢
【问题讨论】:
-
使用
<input type="submit" />提交表单数据。 -
你应该使用foreach,因为你已经绑定了一个模型列表来查看
-
我已经修改了输入类型并删除了按钮。但是,仍然没有值被传递回我的 HttpPOST 方法。我已经按照上面的链接访问了另一个问题,但无济于事,
-
你没有生成任何表单控件,所以没有什么可以提交
标签: c# asp.net-core-mvc