如何在Asp. js中使用Razor模板引擎创建用于编辑的数据网格.净MVC
本文关键字:编辑 用于 创建 数据 数据网 MVC 网格 引擎 js Asp Razor | 更新日期: 2023-09-27 18:09:20
我早些时候发布了一个问题,这个问题被标记为重复,因为它有点类似于现有的回答问题。在我最初的问题中,我解释了我遇到的问题。
现在,我正试图用我带走的问题,有答案"即post一个HTML表到ADO。. NET DataTable",并尝试实现它。我所做的和答案之间的主要区别在于,我在一个表示类中封装了多个viewmodel,因为视图有多个表单。此外,我使用了use DropDownListFor
,它需要一个SelectItem
列表,该列表依赖于我的presenter类中的另一个属性。
这是我所做的
我为我的网格行创建了一个模板视图,如下所示
@model Proj.ViewModels.UserProfileAccessUserToClientsViewModel
<tr>
<td>
@Html.HiddenFor(m => m.ClientId)
</td>
<td>
Menu Goes here -- Still to do since I don't know how to pass SelectItem to this view
</td>
<td>
@Html.TextBoxFor(m => m.JoinedAt, new { @class = "form-control date-picker small-input" })
</td>
<td>
@Html.RadioButtonFor(m => m.IsActive, true) Allowed
</td>
<td>
@Html.RadioButtonFor(m => m.IsActive, true) Not Allowed
</td>
</tr>
然后在其中一个我想要显示表格的表单中,输入
@model Proj.Presenters.UserProfilePresenter
<div class="panel panel-default">
<div class="panel-heading">User To Client Association</div>
<table class="table table-condensed table-valign-text" id="UserToClientRelationTable">
<thead>
<tr>
<th>Client</th>
<th>Default Team</th>
<th class="text-center">Join At</th>
<th colspan="2" class="text-center">Status</th>
</tr>
</thead>
<tbody>
@Html.EditorFor(m => m.Access.UserToClients)
</tbody>
<tfoot>
<tr>
<td colspan="5" class="text-center">
<ul class="pagination pagination-sm pager" id="UserToClientRelationTablePager"></ul>
</td>
</tr>
</tfoot>
</table>
</div>
现在,当我运行我的代码时,我的表没有行。也许,我没有在我的主视图中包括我的模板。但我也不确定我该怎么做。
我如何正确地使用我的编辑模板来显示行?
我怎么能传递一个变量到我的编辑模板需要生成SelectItem
列表下拉列表?
我没有看到任何类型的循环,但我认为m.Access.UserToClients
是一个列表,您正在传递给您的模板,然而,您的模板期望单个项目。
更新你的模板来接受一个列表:
@model IList<Proj.ViewModels.UserProfileAccessUserToClientsViewModel>
@foreach (var m in Model)
{
<tr>
...
</tr>
}