動的フォームを最初から作成したいのですが、すでに次の要素を作成しています。
表示したいすべてのフィールドを含むxmlファイル:
<?xml version="1.0" encoding="utf-8" ?>
<Fields>
<FieldList>
<Field>
<Type>checkbox</Type>
<Name>gender</Name>
<DefaultValue>false</DefaultValue>
<CssClass>myclass</CssClass>
</Field>
<Field>
<Type>textbox</Type>
<Name>name</Name>
<DefaultValue>fill name</DefaultValue>
<CssClass>formtextbox</CssClass>
</Field>
</FieldList>
</Fields>
xmlを逆シリアル化するために使用したクラスに入力されたビュー:
@model Fields
@{
if(Model!=null)
{
using (Html.BeginForm())
{
foreach (Field field in Model.FieldList)
{
switch(field.Type)
{
case "textbox":
@Html.TextBox(field.Name, field.DefaultValue);
break;
case "checkbox":
@Html.CheckBox(field.Name,Convert.ToBoolean(field.DefaultValue));
break;
}
}
}
}
}
今のところアプリは正常に動作していますが、次の疑問があります。
1)ビューに多くのコードを配置する必要があるため、エレガントなソリューションではないと思いますか?
2)サーバー検証を追加したいと思います。私は通常、データアノテーションを使用しますが、送信する内容がわからないため、ここでは不可能だと思います。クラスインスタンスをその場で作成し、その場でデータ注釈を追加する方法はありますか?
3)投稿を処理する別のアクションとコントローラーを作成しました。私は自分のアクションを送信するときに何がパラメーターとして受け取られないのかわからないので、何も受け取りません。アクションからRequest.Formを使用する必要があると思いますか?