出身背景
我们需要提交带有项目的模型。为此,我们制作了一个复杂的模型:
public class PaymentViewModel
{
public decimal? Payment { get; set; }
public string Description { get; set; }
public List<SplittedPaymentViewModel> SplittedPayment { get; set; } = new List<SplittedPaymentViewModel>();
}
public class SplittedPaymentViewModel
{
public short SplittedPaymentId { get; set; }
public decimal? Payment { get; set; }
public string Description { get; set; }
}
对于渲染html,我们使用两个视图,一个是常规视图:
创建付款
@model ZevApp.ViewModels.Record.PaymentViewModel
...
<input class="form-control" asp-for="Payment" type="number" />
<input class="form-control" asp-for="Description" />
...
<div class="panel-body" id="SplittedPayments">
@foreach (var spItem in Model.SplittedPayment)
{
@Html.Partial("SplittedPaymentPartial", spItem);
}
...
</div>
另一部分:
拆分付款部分
@model ZevApp.ViewModels.Record.SplittedPaymentViewModel
...
<input class="form-control" asp-for="Payment" type="number" />
<input class="form-control" asp-for="Description" />
...
正如您所看到的,从第一个视图中,我们调用部分视图并从
拆分付款
列表
意外行为
我们运行了代码,但意外的行为发生了:
每个局部视图绑定
付款
和
描述
窗体父级
付款视图模型
,不是来自传递的项目?
有人知道怎么了吗?
每个视图在文件的开头定义模型。
我们从控制器返回
付款视图模型
,对于测试,有树
拆分付款视图模型
s、 但我们无法从项目中看到价值。