2016-12-13 18 views
1

フォームに表示する必要があるチェックボックスが長くあります。私は、データベース内のテーブルからチェックボックスのリストを取得し、それらをページ上にレンダリングします。ページが保存されると、選択した各項目のフィールド名と値(データベースに格納されている値)が保存されます。ASP.NET MVCのモデルプロパティを動的に設定

また、これらのチェックボックスフィールドがすべてマップされるモデルクラスもありますが、フィールド名と値があるため、私はフィールド/フィールドを持つプロパティのみを設定できます値。

私はこのような何かを単に行うことができますが、私は、構文が正しくないことを知っていることを考えていた

private void CreatePPAIndication(ReferralFormViewModel viewModel, Guid personId, Guid encId) 
     { 
      var ppaIndication = new PPAIndication(); 

      ppaIndication.enterprise_id = "00001"; 
      ppaIndication.practice_id = "0001"; 
      ppaIndication.person_id = personId; 
      ppaIndication.enc_id = encId; 
      // set more properties... 

      // Here is where I would set a property for each selected check box. 
      foreach (var indication in viewModel.Indications.Where(o => o.IsSelected)) 
      { 
       var result = "ppaIndication." + indication.FieldName + "(" + indication.FieldValue + ")"; 
      } 

      // How can I essentially "execute" the string in the line above? 

      _context.PPAIndications.Add(ppaIndication); 
     } 

だから、基本的に、私は基本的に「結果」を「実行」する方法を疑問に思って実際のコードとしての文字列。事前にアドバイスをありがとうございます!

答えて

2

あなたはそのように簡単に値

+0

を設定する値

または

GetType().GetProperty(o.FieldName).SetValue(indication, o.Value); 

を取得する

GetType().GetProperty(o.FieldName).GetValue(indication, null); 

のようなもの

何かのためにリフレクションを使用することができますか?これはちょうど私が必要なものに見えます。ありがとう、スティーブ! –

関連する問題