C# ViewModel从dropdownlist保存选定值

C# ViewModel从dropdownlist保存选定值,c#,entity-framework-4,C#,Entity Framework 4,我有一个下拉列表-很难。这是一个dropdonwlinst,用户可以选择一个值(简单,困难),但如果我选择了一个值,该值不会保存到数据库中。奇怪的是,我还有一个国家列表,这个值被保存到数据库中。如果我手工将这些值放入数据库中,由于困难,这些值会显示在视图中 模型视图: public RouteViewModel() { Countries = new List<SelectListItem>(); DifficultGr

我有一个下拉列表-很难。这是一个dropdonwlinst,用户可以选择一个值(简单,困难),但如果我选择了一个值,该值不会保存到数据库中。奇怪的是,我还有一个国家列表,这个值被保存到数据库中。如果我手工将这些值放入数据库中,由于困难,这些值会显示在视图中

模型视图:

public RouteViewModel()
        {
            Countries = new List<SelectListItem>();
            DifficultGrades = new List<SelectListItem>();

        }
        public int Id { get; set; }

        [Required(ErrorMessage = "You need to give it a name")]
        public string Name { get; set; }

        public int SelectedValue { get; set; }


        public int SelectedId { get; set; }

        public IEnumerable<SelectListItem> Countries { get; set; }
        public IEnumerable<SelectListItem> DifficultGrades { get; set; }
    }

 public class Difficult
    {
        [Key]
        public int DifficultId { get; set; }
        public string DifficultName { get; set; }       
        public virtual ICollection<Route> Routes { get; set; }

    }

public class Route
    {

        [Key]
        public int routeID { get; set; }
        public string Name { get; set; }

        public int? UserProfileID { get; set; }
        public int? CountryID { get; set; }
        public int? DifficultGradeID { get; set; }



        public virtual UserProfile userProfile { get; set; }
        public virtual Country country { get; set; }
        public virtual Difficult difficult { get; set; }
    }

 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(RouteViewModel routeViewModel )
        {

            try
            {
                if (ModelState.IsValid)
                {

                    var route = new Route();
                    UpdateRoute(route, routeViewModel);
                    db.Routes.Add(route);

                    db.SaveChangesAsync();
                    return RedirectToAction("Index");
                }
            }
            catch (RetryLimitExceededException /* dex */)
            {

                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
            }


            ViewBag.Id = new SelectList(db.countries, "Id", "country_name", routeViewModel.Id);
            ViewBag.DifficultId = new SelectList(db.difficulties, "DifficultId", "DifficultName", routeViewModel.Id);
            return View(new RouteViewModel());
        }

谢谢

您真的打算将
routeViewModel.Id
分配给三个不同的值吗?谢谢您的answare。但如何做才不同呢?我可以拯救国家,但不能拯救困难。我真的不知道该怎么做。将选定的ID作为视图模型的一部分。我完全不明白你为什么要用viewbag。在视图模型中,
SelectedValue
SelectedId
这些不起眼的属性是什么?你能告诉我你的意思吗,谢谢,有人能帮我吗??
public void UpdateRoute(Route route, RouteViewModel routeViewModel  )
        {
            route.routeID = routeViewModel.Id;
            route.Name = routeViewModel.Name;
            route.CountryID = routeViewModel.Id;
            route.DifficultGradeID = routeViewModel.Id;

            // climb.country.country_name = ModelViewClimb.Name;

        }