チェック ボックス リストと必須フィールドの検証のコード。必須フィールドの検証は、ポストバックを防ぐ方法のページのポストバックです。
私のビューコード:
<% int cnt = 0; foreach (var value in Enum.GetValues(typeof(ColList)))
{
cnt++; %>
<% var name = Enum.GetName(typeof(ColList), value); %>
<input type="checkbox" id="ColList" name="ColList" value="<%=value %>" />
<fieldset>
<label for="ColList<%=value %>">
<%=name %>
</label>
</fieldset>
<% if ((cnt % 4) == 0)
{ %>
<br />
<% }
} %>
<%:Html.ValidationMessageFor(model => model.ColList)%>
モデルコードは:
[Required(AllowEmptyStrings = false, ErrorMessage = "Select at least one Column")]
public ColList[] ColList { get; set; }
選択した列のリストを取得できます。そのコードは次のとおりです。
//Selected Columns
string selectedColumns = string.Empty;
for (int i = 0; i < ((reportCriteria.ColList == null) ? 0 : reportCriteria.ColList.Length); i++)
{
selectedColumns += "&C=" + reportCriteria.ColList[i].ToString();
}