在MVC中编辑列表集合属性的方法
本文关键字:属性 方法 集合 列表 MVC 编辑 | 更新日期: 2023-09-27 18:08:55
public class VerifyLicensorModel
{
public int TempId { get; set; }
public string Licensor { get; set; }
public string Address { get; set; }
public int LicensorId { get; set; }
public int ActionId { get; set; }
public int ReferenceId { get; set; }
}
这是我的模型,我得到这个列表作为excel导入的结果,我要求用户验证数据
因此,对于每个许可方用户应该选择一个操作[actionId],并且也有一个基于操作用户选择[ReferenceId]的引用所以选择ActionId和ReferenceId我使用一个模态弹出,允许用户选择动作和ReferenceId[决定这2个参数的过程是复杂的,包括很多条件检查和并行选择的输入,首先判断liceonsor是新的还是现有的。如果决策已存在,则查找已存在的id、相关地址。然后决定使用新地址或替换现有地址。如果决定替换现有的,选择要替换的
这就是为什么计划将其逻辑保持为一个单独的逻辑,并返回结果只有2个id actionid和referenceID]
在提交时我如何设置这两个属性的值我的观点是这样的
@model IList<ApplicationLab.Models.VerifyLicensorModel>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<table class="table">
<tr>
<th>
Licensor
</th>
<th>
Address
</th>
<th>
Action
</th>
<th>
Verify
</th>
</tr>
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>
@Html.HiddenFor(modelItem => Model[i].TempId)
@Html.HiddenFor(modelItem => Model[i].LicensorId)
@Html.DisplayFor(modelItem => Model[i].Licensor)
</td>
<td>
@Html.TextAreaFor(modelItem => Model[i].Address)
</td>
<td>
@Html.HiddenFor(modelItem => Model[i].ActionId)
@Html.HiddenFor(modelItem => Model[i].ReferenceId)
</td>
<td>
<a >Verify</a> // onclick plannig to show popup
</td>
</tr>
}
</table>
<div class="form-group">
<div class="col-md-10" style="text-align:center;">
<input type="submit" value="Submit" class="btn btn-primary" />
@Html.ActionLink("Cancel", "LicenseImport", "Import", new { @id = @ViewBag.EditionId }, new { @class = "btn btn-link" })
</div>
</div>
}
那么我的方法是正确的吗?如果是这样,我如何设置选定的行属性?或者有没有更好的方法或例子来建议实现相同的?
通常,您的视图模型应该是页面和页面上元素的表示。如果要在模态上使用,可以使用分部视图模板。
你需要创建List的新属性来表示actionid和referenceid可用的选项,并将其作为参数传递给@Html辅助函数。视图中的DropDownListFor
public class VerifyLicensorModel
{
public int TempId { get; set; }
public string Licensor { get; set; }
public string Address { get; set; }
public int LicensorId { get; set; }
public int ActionId { get; set; }
public List<SelectListItem> ActionOptions { get; set; }
public int ReferenceId { get; set; }
public List<SelectListItem> ReferenceOptions { get; set; }
}
On the View:
@Html.DropDownListFor(m => m.ActionId, Model.ActionOptions);
@Html.DropDownListFor(m => m.ReferenceId, Model.ReferenceOptions);