.NET Core Razor 页面数据绑定,具有表单提交的部分视图



我有一个对象,其中有一个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>

数据在整个窗体(包括部分"地址"视图)上呈现良好。 当我提交表单时,我引用的地址部分我在提交表单时返回为空,而其他数据则正确绑定数据。 是否可以将数据绑定到分部视图并使其与表单发布一起正确提交?

很可能,您没有为部分提供上下文,以便它可以正确生成名称。按原样,部分将想要生成像AddressLine1这样的名称,而正确绑定的实际需要是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" />

最新更新