【发布时间】:2018-10-08 06:58:39
【问题描述】:
对于 Razor Pages,当我希望用户单击表中的按钮,然后执行使用从行传递的元素进行操作的任务时,处理这种情况的最佳方法是什么?
到目前为止,我已经为这个表加载了一个数据模型,我希望他们单击一行并在我的操作中使用该行:
数据模型:
public struct CollapseReportModel
{
public HighLevelOutput Summary { get; set; }
public IEnumerable<HighLevelOutput> WeeksOfData { get; set; }
}
表:
<div class="container">
<div id="accordion">
@{int counter = 0; }
@foreach (var dataVM in Model.CollapseReport)
{
<div class="card">
<div class="card-header" id="heading@(counter)">
<h5 class="mb-0">
<button class="btn btn-link" data-toggle="collapse" data-target="#collapse@(counter)" aria-expanded="true" aria-controls="collapse@(counter)">
@dataVM.ToString()
</button>
</h5>
</div>
<div id="collapse@(counter)" class="collapse" aria-labelledby="heading@(counter)" data-parent="#accordion">
<div class="card-body">
我正在尝试使用此按钮单击将数据发送到任务,但它只是传递空值:
<form method="post">
<input type="submit" class="btn btn-default" value="Add to Log" asp-page-handler="AddLog" asp-route-data="@dataVM.Summary.CorpCustomer, @dataVM.Summary.Item)" />
</form>
<ul class="list-group">
@foreach (var item in dataVM.WeeksOfData)
{
<li class="list-group-item">@($"{item.Item}, {item.ItemDescription}, {item.CorpCustomer}, {item.SummedOrder}, {item.SummedForecast}, {item.Difference}, {item.Week}")</li>
}
</ul>
</div>
</div>
</div>
counter++;
}
</div>
</div>
<script src="~/jquery.js"></script>
<script src="~/bootstrap.js"></script>
到这个处理程序:
public Task<IActionResult> OnPostAddLog(string var1, string var2)
{
//Use elements from the row to perform an action
var test = var1;
var t2 = var2;
return null;
}
【问题讨论】:
标签: c# asp.net-core-2.0 razor-pages