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 [决定这两个参数的过程很复杂,包括很多条件检查和输入的并行选择, 示例首先确定liceonsor是新的还是现有的。如果现有的决定找到现有的id,相关的地址。然后决定使用新地址或替换现有地址。如果决定要替换现有的选择替换
这就是为什么计划将其逻辑作为一个单独的逻辑并且只返回结果,即2 Ids 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>
}
我的方法是正确的吗?如果是这样,我如何设置选定的行属性? 或者是建议实施相同的更好的方法或例子吗?
答案 0 :(得分:0)
通常,您的视图模型应该是页面和页面上元素的表示。如果要在模态上使用它,则可以使用部分视图模板。
您需要创建List的新属性以表示可用于ActionIds和ReferenceIds的选项,并作为参数传递,以便在视图中使用辅助函数@ 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; }
}
在视图上:
@Html.DropDownListFor(m => m.ActionId, Model.ActionOptions);
@Html.DropDownListFor(m => m.ReferenceId, Model.ReferenceOptions);