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