私は MVC4 を使用してこのプロジェクトを構築していますが、事前に入力された html を取得する方法を理解するのに少し苦労しています。
生年月日が含まれている部分で、現在の日付と照合して、その人が18歳以上か18歳未満かを確認します。年齢に応じて、ドロップダウンの検証オプションのリストを持つデータベースがあります年齢に応じて特定のものを表示するリスト。18 を超える場合は 3 つの異なる結果が表示され、18 を下回る場合は 1 つのオプションのみが表示されます。私はいくつかの異なる方法を試しましたが、そのうちの1つはビューに入れることでうまくいきました。しかし、この部分をコントローラーから実行したいのですが、ロジックをUIから分離したいだけです。これが私が取り組んでいる方法です。どんな助けも素晴らしいでしょう! 試してうまくいかなかったオプションを 1 つまたは 2 つコメントアウトしました。
public void SetupValidationList(DateTime? dateOfBirth = null)
{
var vtList = MetadataManager.GetValidationTypes().Where(x => x.DisplayInAdminTool).Select(x => x);
// populate drop down for Validation Method/TypeID
List<SelectListItem> items = vtList.Select(vtitem => new SelectListItem
{
Text = vtitem.DisplayName,
Value = vtitem.ID.ToString()
}).ToList();
items.Insert(0, new SelectListItem { Text = String.Empty, Value = String.Empty });
// If minor then only validation option is face to face minor
// If adult then remove face to face minor validation option
if (dateOfBirth.HasValue)
{
//List<SelectListItem> validationList = new List<SelectListItem>();
if (dateOfBirth >= DateTime.Now.AddYears(-18))
{
vtList(new SelectListItem { Text = "Patient Face to Face Minor" });
}
else
{
items.Add(new SelectListItem { Text = "Patient Face to Face" });
items.Add(new SelectListItem { Text = "Patient Phone" });
items.Add(new SelectListItem { Text = "Patient Notary" });
}
//if (Model.DateOfBirth >= DateTime.Now.AddYears(-18))
//{
// validationList.Add(allValidationList.FirstOrDefault(s => s.Text.Contains("Minor")));
//}
//else
//{
// validationList.AddRange(allValidationList.Where(s => !s.Text.Contains("Minor")));
//}
}
ViewData["ValidationList"] = items;
}