繁体   English   中英

部分视图的视图模型未绑定到主视图模型的视图模型

[英]ViewModel of Partial View Not Binding to that of main ViewModel

我在将部分视图模型的值绑定到主视图模型时遇到问题。 我不确定我做错了什么,但任何提示都会有所帮助。

视图模型

public class ParentViewModel
{
    public int ParentId { get; set; }

    public int ParentName { get; set; }

    public ChildViewModel childViewModel { get; set; }
}

public class ChildViewModel
{
    public bool HasChild { get; set; }
}

剃刀视图

@await Html.PartialAsync("_ChildViewPartial", Model.childViewModel)

子部分视图

@model ChildViewModel

    <input asp-for="@Model.HasChild"
           asp-error-class="error"
           class="input"
           id="HasChild"
           autocomplete="off"
           type="checkbox"
           value="@true">

    <label class="checkboxes" for="HasChild">
        Do you have child?
    </label>

现在我面临的问题是 HasChild 的值在后期操作中始终为 false。

如果我在主视图中包含子视图模型的代码并使用

asp-for="@Model.ChildViewModel.HasChild"

为复选框然后它的工作原理。

您可以更改视图模型

public class ParentViewModel:ChildViewModel
{
    public int ParentId { get; set; }

    public int ParentName { get; set; }
  
}

在这种情况下,子模型可能相同

或者只是将 HasChild 添加到父级。 为什么不?

public class ParentViewModel
{
    public int ParentId { get; set; }

    public int ParentName { get; set; }

    public bool HasChild { get; set; }
}

在这种情况下,您的子视图模型需要更改为父视图模型

@model ParentViewModel

    <input asp-for="HasChild"
    ....

但在这两种情况下,你的主视图应该是一样的,这很重要

<partial name="_ChildViewPartial" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM