मैं मॉडल पर चुने गए विकल्प पर ड्रॉपडाउन के साथ संपादित उपयोगकर्ता पृष्ठ लोड नहीं कर सकता। जब मैं कोई उपयोगकर्ता जोड़ता हूं तो यह डीबी में सही ढंग से सहेजा जाता है।

मैंने इसे संपादन दृश्य में बाध्य करने का प्रयास किया लेकिन किसी कारण से यह काम नहीं कर रहा है।

User.cs (मॉडल)

सार्वजनिक स्ट्रिंग गतिविधि स्तर {प्राप्त करें; समूह; }

नियंत्रक

    List<SelectListItem> activity = new List<SelectListItem>
    {
        new SelectListItem{ Selected = false ,Text = "Sedentary (little or no exercise)", Value = "Sedentary (little or no exercise)" },
        new SelectListItem{ Selected = false ,Text = "Lightly active (light exercise/sports 1-3 days/week)", Value = "Lightly active (light exercise/sports 1-3 days/week)"  },
        new SelectListItem{ Selected = false ,Text = "Moderately active (moderate exercise/sports 3-5 days/week)", Value = "Moderately active (moderate exercise/sports 3-5 days/week)"  },
        new SelectListItem{ Selected = false ,Text = "Very active (hard exercise/sports 6-7 days a week)", Value = "Very active (hard exercise/sports 6-7 days a week)"  },
        new SelectListItem{ Selected = false ,Text = "Extra active (very hard exercise/sports & a physical job)", Value = "Extra active (very hard exercise/sports & a physical job)"  },
    };

पब्लिक एक्शन रिसेट न्यू यूज़र () {

        User u = new User();
        ViewBag.User = u;
        ViewBag.activity = activity;
        return View();
    }
    [HttpPost]
    public ActionResult NewUser(User user)
    {
        try
        {
            db.Users.Add(user);
            db.SaveChanges();
            return RedirectToAction("AllUsers");
        }
        catch (Exception e)
        {
            return View();
        }
    }



    public ActionResult EditUser(int id)
    {
        User user = db.Users.Find(id);
        ViewBag.User = user;


        activity.Single(i => i.Value == user.ActivityLevel).Selected = true;
        ViewBag.activity = activity;

        return View();
    }
    [HttpPut]
    public ActionResult EditUser(int id, User requestUser)
    {
        try
        {
            User user = db.Users.Find(id);
            if (TryUpdateModel(user))
            {
                user.Firstname = requestUser.Firstname;
                user.Lastname = requestUser.Lastname;
                user.Height = requestUser.Height;
                user.Weight = requestUser.Weight;
                user.Gender = requestUser.Gender;
                user.Age = requestUser.Age;
                user.Calories = requestUser.Calories;
                user.Bmr = requestUser.Bmr;
                user.ActivityLevel = requestUser.ActivityLevel;
                user.WeightChoice = requestUser.WeightChoice;
                db.SaveChanges();
            }
            return RedirectToAction("AllUsers");
        }
        catch (Exception e)
        {
            return View();
        }
    }

संपादनकर्ता (देखें): (मुझे लगता है कि यह समस्या है, या संपादन विधि का नियंत्रक प्राप्त करें)

<label>Select Activity level</label>

@Html.DropDownListFor(m => m.ActivityLevel,
new SelectList(ViewBag.activity, "Value", "Text"),
new { @class = "form-control" })

नया उपयोगकर्ता (देखें):

<label>Select Activity level</label>

@Html.DropDownListFor(m => m.ActivityLevel,
new SelectList(ViewBag.activity, "Value", "Text"),
new { @class = "form-control" })
0
Alex Staniea 7 नवम्बर 2019, 12:39

1 उत्तर

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

कृपया नीचे दिए गए समाधान की जाँच करें: कृपया अपना कोड अलग करें, अपने चयनित मान को अलग-अलग व्यूबैग में पास करें उदाहरण के लिए Viewbag.SelectedID और ViewBag.activity EditUser और . में जो कुछ भी आप पास कर रहे हैं उसे पास करें Edituser UI में इस तरह उपयोग करें

@Html.DropDownListFor(m => m.ActivityLevel, new SelectList(ViewBag.activity, "Value", "Text", Viewbag.SelectedID), new { @class = "form-control" })
0
Hardik Masalawala 9 नवम्बर 2019, 14:12