C# .NET Core将单个属性传递给局部视图

C# .NET Core将单个属性传递给局部视图,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,在使用Razor页面的ASP.NET Core 3.1项目中,我有以下页面模型: [BindProperty] public AddUserPageModel Input { get; set; } public class AddUserPageModel { public string UserName { get; set; } public string Password { get; set; } public List<IFormFile> Im

在使用Razor页面的ASP.NET Core 3.1项目中,我有以下页面模型:

[BindProperty]
public AddUserPageModel Input { get; set; }

public class AddUserPageModel
{
    public string UserName { get; set; }
    public string Password { get; set; }
    public List<IFormFile> ImageUploads { get; set; }
}
[BindProperty]
public AddUserPageModel输入{get;set;}
公共类AddUserPageModel
{
公共字符串用户名{get;set;}
公共字符串密码{get;set;}
公共列表图像上载{get;set;}
}
从这个Razor页面视图中,我插入了一个局部视图,并传递了作为单个属性的模型:

<partial name="Partials/_AddPhotos" model="@Model.Input.ImageUploads" />

从部分观点来看:

@model List<Microsoft.AspNetCore.Http.IFormFile>

<input asp-for="@Model" type="file" multiple>
@型号列表
这将导致以下错误:

System.ArgumentException:HTML字段的名称不能为null或空。


因此,问题似乎出现在局部视图中,
asp for=“@Model”
需要一个
.PropertyName
,但我不确定如何实现这一点?

我认为您可以将
@Model.Input
传递到局部视图中

@model Project.Models.AddUserPageModel

<input asp-for="@Model.ImageUploads" type="file" multiple>
并在局部视图中使用AddUserPageModel作为页面模型

@model Project.Models.AddUserPageModel

<input asp-for="@Model.ImageUploads" type="file" multiple>
@model Project.Models.AddUserPageModel

这确实有效,但感觉有点像黑客。asp-for属性根据属性名添加id和名称。模型似乎不能是单一类型的。