.NET Core Razor页面数据绑定以及表单提交的部分视图

时间:2019-02-17 22:29:21

标签: asp.net-core razor-pages

我有一个带有Address对象作为属性的对象,该对象在应用程序中多次使用。我做了一个局部视图,看起来像

@model Address
<div>
    <div class="form-group">
        <label asp-for="@Model.AddressLine1"></label>
        <input asp-for="@Model.AddressLine1" />
    </div>
    ....

我使用

这样的形式
<form method="post">
    <div class="form-group">
        <input asp-for="@Model.Request.Business.Owners[0].FirstName" />
        <input asp-for="@Model.Request.Business.Owners[0].LastName" />
    </div>
    <input type="submit"/>
</form>

数据在整个表单(包括部分“地址”视图)上呈现良好。当我提交表单时,我引用的每个人的Address部分都在提交表单时返回为null,而其他数据是正确绑定的数据。是否可以将数据绑定到部分视图,并使其正确地通过表单发布提交?

1 个答案:

答案 0 :(得分:2)

很可能,您没有为部分提供上下文,以便它可以正确生成名称。照原样,当您真正需要正确绑定的是AddressLine1时,partial将要生成类似Request.Business.Owners[0].Address.AddressLine1的名称。我假设您正在执行以下操作:

<partial name="_Address" model="Request.Business.Owners[0].Address" />

相反,您需要使用for属性:

 <partial name="_Address" for="Request.Business.Owners[0].Address" />