C# 模型绑定从ASP.NET Core Razor Pages/MVC中的配置创建的表单
在我的数据库中,我为产品配置了字段: 以下是实体的外观: ProductFieldC# 模型绑定从ASP.NET Core Razor Pages/MVC中的配置创建的表单,c#,razor,asp.net-core,asp.net-core-mvc,razor-pages,C#,Razor,Asp.net Core,Asp.net Core Mvc,Razor Pages,在我的数据库中,我为产品配置了字段: 以下是实体的外观: ProductField Id(主键) ProductId(FK) 标签(用作字段标签) 类型(文本,文本区域) 当页面加载时,我的产品实体有一个页面模型,它有一个名为ProductField类型的字段的导航属性。在我的razor语法中,我正在执行以下操作: <form method="post"> @{ int i = 0; if (Model.Product.Fields.Coun
Id(主键)
ProductId(FK)
标签(用作字段标签)
类型(文本,文本区域) 当页面加载时,我的产品实体有一个页面模型,它有一个名为ProductField类型的字段的导航属性。在我的razor语法中,我正在执行以下操作:
<form method="post">
@{
int i = 0;
if (Model.Product.Fields.Count > 0)
{
@foreach (var field in Model.Product.Fields)
{
if (field.Type == "Text")
{
<input id="txt_@i" type="text">
}
else if (field.Type == "Signature")
{
<textarea id="txtArea_@i"></textarea>
}
i++;
}
}
}
</form>
@{
int i=0;
如果(Model.Product.Fields.Count>0)
{
@foreach(Model.Product.Fields中的var字段)
{
如果(field.Type==“Text”)
{
}
else if(field.Type==“签名”)
{
}
i++;
}
}
}
我遇到的问题是创建一个ViewModel,该ViewModel可以正确地发布到,这样我就可以访问每个字段的值并将其存储在数据库中
数据库中还有另一个表用于存储每个字段的值:
ProductFieldValueProductFieldId(FK)
UserId(填写表单的用户的Id)
值(该字段的值)
在这种情况下,使用Razor Pages或MVC对绑定建模的正确方法是什么?要对Razor Pages中的数据列表进行绑定建模,需要使用
name
属性将所有数据传递到后端
在PageModel中,声明列表以存储输入数据
[BindProperty]
public List<string> DataStored { get; set; }
[BindProperty]
公共列表数据存储{get;set;}
在锐利的视野中
<form method="post">
@{
int i = 0;
if (Model.Product.Fields.Count > 0)
{
@foreach (var field in Model.Product.Fields)
{
if (field.Type == "Text")
{
<input type="text" id="txt_@i" class="items" name="DataStored[@i]" />
}
else if (field.Type == "Signature")
{
<textarea id="txtArea_@i" class="items" name="DataStored[@i]" ></textarea>
}
i++;
}
}
}
@{
int i=0;
如果(Model.Product.Fields.Count>0)
{
@foreach(Model.Product.Fields中的var字段)
{
如果(field.Type==“Text”)
{
}
else if(field.Type==“签名”)
{
}
i++;
}
}
}
如果使用MVC,则接受列表作为操作参数
[HttpPost]
public IActionResult Create(List<string> dataStored)
[HttpPost]
公共IActionResult创建(列表数据存储)
明白了,但现在我只有一个字符串列表。我如何知道哪个字段的值,以便将其存储到ProductFieldValues中并保存?我想如果我注意排序的准确性,我可以按顺序进行排序。