これは簡単に行うことができるようですが、動作させることができません。ASP.NETチェックボックスから複数の選択肢を取得するには
モデルにはチェックボックスのリストとして表示したい列挙型があります。ユーザーは複数のチェックボックスを選択でき、これをデータベースに保存します。
だから、列挙型はそう(約20要素大辞典)のようなものです:
public enum ReferrerType
{
[Description("No Data")]
NoData = 9999,
[Description("Father or Mother")]
Parents = 1,
[Description("Brother or Sister")]
Sibling = 2,
[Description("Other")]
Other = 10
}
説明UIに表示されているもので、数値がデータベースに保存することがあるものとなります。数字は統計パッケージに直接入るので、リストに載ったままでなければなりません。
私は、リファラーのクラスを定義した:
public class Referrer
{
public virtual Guid Id { get; private set; }
public virtual ReferrerType{ get; set; }
}
私はこれが奇数(アンチ)パターンかもしれません実現。私は急いでそれを開発し、余暇で悔い改めています。このモデルを改善するためのアドバイスも大歓迎です!
私のコントローラがリストアップセット:
private static IList<string> GenerateReferrerList()
{
var values = from ReferrerType e in Enum.GetValues(typeof(ReferrerType))
select new { Name = e.ToDescription() };
return values.Select(x => x.Name).ToList();
}
をそして私はこのように私のビューでそれを使用します。
<div class="radio-boolean form-field" id="Referrers">
<p class="form-field-attribute"> <span class="label">Referred By </span> </p>
<% for (var i = 0; i < ((IList<string>)ViewData["ReferrerList"]).Count; i++)
{ %>
<p class="form-field-value">
<%= Html.CheckBox(string.Format("Referrers[{0}].Type", i)) %>
<label for="Referrers"> <%= ((IList<string>)ViewData["ReferrerList"])[i]%></label>
</p>
</div>
そして、それは動作しません!私は何か明白なものを見逃していると思うが、私は何かを解決することはできない。エラーはありません。リファラーが必要な空のデータベーステーブル...
いつもどんな助けもありがとうございました!
お返事ありがとうございます。私はこれを今すぐ行っています。これは現在の実装がどのようにレイアウトされているかとはかなり異なりますが、あなたの提案のようにviewmodel構造を適応させることを望みます。 – laura