我有一种情况,我应该基于否创建多个按钮。数据库上的项目数。
并且当单击按钮时,将出现一个带有提交按钮的弹出模式。
当我提交时,所选的参数不会传递到我的后期控制器Activate(代码)
有人可以帮忙吗?
我有这个模特:
public class Code
{
public int CodeId { get; set; }
public string CodeName { get; set; }
public string CodeColor { get; set; }
public int PagerNo { get; set; }
}
这是我的控制器:
public IActionResult Index()
{
return View(_code.Entity.GetAll());
}
[HttpPost]
public IActionResult Activate(Code code)
{
int codeId = code.CodeId;
return RedirectToAction("Index");
}
我的观点:
@model IEnumerable<CoreLibrary.Entities.Code>
@{
ViewData["Title"] = "Index";
}
<h1>Index</h1>
<div class="container">
@foreach (var item in Model)
{
<button class="btn btn-success btn-lg" data-toggle="modal" data-target="#[email protected]">
@item.CodeName
</button>
}
@foreach (var item in Model)
{
<form asp-action="Activate" asp-controller="Activation" method="post">
<div class="modal fade" id="[email protected]" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="ModalLongTitle">Are you sure?</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@item.CodeName will be activated !
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<input type="submit" class="btn btn-primary form-control" value="Submit" />
</div>
</div>
</div>
</div>
</form>
}
</div>
见下文:我已经添加了隐藏字段
@model IEnumerable<CoreLibrary.Entities.Code>
@{
ViewData["Title"] = "Index";
}
<h1>Index</h1>
<div class="container">
@foreach (var item in Model)
{
<button class="btn btn-success btn-lg" data-toggle="modal" data-target="#[email protected]">
@item.CodeName
</button>
}
@foreach (var item in Model)
{
<form asp-action="Activate" asp-controller="Activation" method="post">
@Html.HiddenFor(m => item.CodeId)
@Html.HiddenFor(m => m.CodeName)
@Html.HiddenFor(m => m.CodeColor)
@Html.HiddenFor(m => m.PagerNo)
<div class="modal fade" id="[email protected]" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="ModalLongTitle">Are you sure?</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@item.CodeName will be activated !
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<input type="submit" class="btn btn-primary form-control" value="Submit" />
</div>
</div>
</div>
</div>
</form>
}
</div>
您可以直接添加名称为CodeId
的隐藏字段,该字段将在模型绑定期间绑定到Code
对象:
@foreach (var item in Model)
{
<form asp-action="Activate" asp-controller="home" method="post">
<input name="CodeId" type="hidden" value="@item.CodeId"> <-- pass CodeId
<div class="modal fade" id="[email protected]" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="ModalLongTitle">Are you sure?</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@item.CodeName will be activated !
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<input type="submit" class="btn btn-primary form-control" value="Submit" />
</div>
</div>
</div>
</div>
</form>
}