MVC核心弹出模式参数



我有一个场景,我应该根据DB上的项目数量创建按钮数量。

当点击一个按钮时,弹出模式应该会出现一个提交按钮。

当我提交时,所选的参数不会传递给我的后控制器激活(代码代码(

有人能帮忙吗?

我有这个型号:

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="#item-@item.CodeId">
@item.CodeName
</button>
}

@foreach (var item in Model)
{
<form asp-action="Activate" asp-controller="Activation" method="post">
<div class="modal fade" id="item-@item.CodeId" 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">&times;</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="item-@item.CodeId" 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">&times;</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>
}

见下文:我添加了隐藏字段

@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="#item-@item.CodeId">
@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="item-@item.CodeId" 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">&times;</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>

最新更新