मेरे पास दो वर्ग और एक विधि है। मैं विधि में एक List<Timelineinfo> को List<Edit> में बदलने का प्रयास कर रहा हूं।

public class Timelineinfo
    {
        public int Name { get; set; }
        public int Age { get; set; }
    }
 public class Edit : Timelineinfo
    {
        public int Confirmed { get; set; }
    }

तरीका:

public ActionResult Edit(SubmitModel model)
        {
            model.Timelineinfos = (Edit)model.Timelineinfos; //Convert the Timelineinfo data into the Edit class,
                                                             // which has an additional Confirmed property.
            model.Confirmed = 0;
            return null;
        }

हालांकि, model.Confirmed = 0; लाइन पर, मुझे एक त्रुटि मिल रही है:

सबमिटमोडेल' में 'पुष्टि' की परिभाषा नहीं है और 'सबमिटमोडेल' प्रकार के पहले तर्क को स्वीकार करने वाली कोई सुलभ विस्तार विधि 'पुष्टि' नहीं मिल सकती है (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?)

सबमिट मॉडल निम्न जैसा दिखता है:

 public class SubmitModel
    { 
        [BindProperty]
        public Timelineinfo Timelineinfos { get; set; }       
    }
0
Bubinga 6 अगस्त 2020, 11:21

1 उत्तर

सबसे बढ़िया उत्तर

जहां तक ​​​​मुझे पता है कि एक साधारण इनलाइन-कन्वर्ट के साथ करना संभव नहीं है।

आपके पास यहां 2 अच्छे विकल्प हैं:

  1. AutoMapper का उपयोग करें, जिसे आप उसके लिए कॉन्फ़िगर कर सकते हैं और lib उस मामले के लिए एक-लाइनर बना देगा, यहां देखें: https://docs.automapper.org/en/stable/Getting-started.html

  2. एक विधि लिखें, उदा। आपके संपादन में एक निर्माता:

     public class Edit : Timelineinfo
     {
          public Edit(Timelineinfo info)
          {
             Name = info.Name;
             Age = info.Age;
          }
    
          public int Confirmed { get; set; }
     }
    

सूची के साथ:

public ActionResult Edit(List<SubmitModel> model)
{
            model.Timelineinfos = model.Select(x => new Edit(x.TimelineInfo)).ToList();
            model.Confirmed = 0;
            return null;
}

सूची के बिना:

public ActionResult Edit(SubmitModel model)
{
            model.Timelineinfos = new Edit(model.TimelineInfo);
            model.Confirmed = 0;
            return null;
}
0
PassionateDeveloper 6 अगस्त 2020, 11:31