我的Form
课程有List<FormField>
。
public class Form
{
public int ID { get; set; }
public int templateID { get; set; }
public List<FormField> fields { get; set; }
public Form()
{
fields = new List<FormField>();
}
}
FormField
:
public class FormField
{
public object value { get; set; }
public TemplateField templateField {get;set;}
}
TemplateField
:
public class TemplateField
{
public int ID { get; set; }
public string fieldDescription { get; set; }
public TemplateFieldType type { get; set; }
}
我的控制器类:
public class MedicalAppointment:Controller {
public IActionResult Index()
{
Template template = new TemplateDataMapper().GetMedicalAppointmentTemplate();
Form form = new Form();
form.templateID = template.ID;
foreach(TemplateField field in template.fields)
{
FormField formField = new FormField();
formField.templateField = field;
form.fields.Add(formField);
}
return View(form);
}
public IActionResult TemplateManagement()
{
return View();
}
[HttpPost]
public void SaveForm(Form form)
{
......
}
我的观点如下:
@model Form
....
@using (Html.BeginForm("SaveForm", "MedicalAppointment", FormMethod.Post, new { id = "registerDonorForm" }))
{
<table class="personal-data">
@for(int i=0; i<Model.fields.Count; i++)
{
<tr>
<th>@Html.LabelFor(model => Model.fields[i].templateField.ID, Model.fields[i].templateField.fieldDescription)</th>
<th>@Html.TextBoxFor(model => Model.fields[i].value)</th>
</tr>
}
</table>
<div class="register-button">
<input type="submit" value="Registar" />
</div>
}
</div>
我想创建一个动态表单,当我提交它时,我可以收到一个带有field[i].value
的表单。
我的问题是,当我提交表单时,在控制器中,我没有收到用户提交的任何值。收到Form,FormField.Value为null,Form.FormField.TemplateField.ID。
任何人都可以帮助我吗?
注意:忘记html和其他错误名称的类名。
提前谢谢