带有数据的表结构的屏幕截图 表结构如下:
Id | Category | DisplayName | FieldName | FieldType | FieldLength | IsRequired
有关详细信息,请参见屏幕截图。
在选择类别后,表格中针对该类别定义的所有HTML字段都应在视图中填充。
以及如何在表单提交时进行验证。
我有400多个类别。
答案 0 :(得分:0)
这是我想你可以做的。
首先声明一个SampleClass
并将其命名为任意名称,我将使用public class SampleClass
{
public int Id { get; set; }
public string Category { get; set; }
public string DisplayName { get; set; }
public string FieldName { get; set; }
public string FieldType { get; set; }
public string FieldLength { get; set; }
public int IsRequired { get; set; }//you can convert this to boolean to make it easier
}
//assuming you are using linq
var allEntry = context.Table.Where(m => m.Category == SelectedCategory);
var allViews = new List<SampleClass>();
foreach (var entry in allEntry)
{
allViews.Add(new SampleClass
{
FieldName = entry.FieldName,
//and so on...
});
}
第二,从Controller中的db填充此类
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { @class = "forms-horizontal", role = "form" }))
{
<div class="form-horizontal">
<h4>Title of the form</h4>
<hr /><br />
@foreach (var a in List<SampleClass>)//note this(List<SampleClass>) will be passed from the controller to the view.
{
switch (a.FieldType)
{
case "Test":
<div class="form-group">
<label for="@a.FieldName"></label>
<input id="@a.FieldName" type="text" name="@a.FieldName" required="@(a.IsRequired == 1 ? "required" : "")" />
</div>
break;
case "Number":
<div class="form-group">
<label for="@a.FieldName"></label>
<input id="@a.FieldName" type="number" name="@a.FieldName" required="@(a.IsRequired == 1 ? "required" : "")" />
</div>
break;
case "Select":
<div class="form-group">
<label for="@a.FieldName"></label>
@Html.DropDownList(a.FieldName, new SelectList(DbUtils.GetEvaluations(), "Value", "Text", null), "Select..", new { @required = @a.IsRequired == 1 ? "required" : "" })
</div>
break;
}
}
<div class="form-group">
<div class="col-md-offset-3 col-md-9">
<input type="submit" value="Submit" class="btn btn-primary" />
</div>
</div>
</div>
}
第三,并按照我在评论中所说的那样做
cases
您可以选择更多module test;
reg a;
initial begin
a = 1'b0;
a <= 1'b1;
$display(a);
end
endmodule
希望这会有所帮助。