gpt4 book ai didi

c# - MVC 3 DropDownFor 和 ViewModel 不工作

转载 作者:行者123 更新时间:2023-11-30 20:03:59 24 4
gpt4 key购买 nike

我有两个模型:

public class Person
{
public Guid ID { get; set; }
public string Name { get; set;}
}

public class Event
{
public Guid ID { get; set; }
public string EventName { get; set; }
public virtual Person Owner { get; set; }
}

我有一个 View 模型:

public class EventViewModel
{
public EventViewModel() { }
public Event EventToEdit { get; set; }
public SelectList People { get; set; }
}

我有我的 Controller :

public ViewResult Create()
{
var eve = new Event();
var vm = new EventViewModel
{
EventToEdit = eve,
People = GetPeopleList(true, eve)
}
return View(vm)
}

我有我的看法:

@Html.DropDownListFor(x => x.EventToEdit.Owner, Model.People)

显然,为了阅读目的,它们被删减了。

当我提交我的 View ,并在 ActionResult Create 中命中断点时

  1. 它没有 Owner 的值(列表已正确填充)
  2. ViewModel People 也为空

使用 ViewModel 的目的是将信息从 View 传递到 Controller ,因此首先为什么 People 为空。

其次,也是最重要的,为什么 Owner 没有正确填充。有可供选择的人。事件名称将通过模型传回,因此 ViewModel 可以正常工作...

谢谢,

最佳答案

首先应该是:

@Html.DropDownListFor(x => x.EventToEdit.Owner.ID, Model.People)

所以 Model.People 是这样的:

new SelectList(source, "ID", "Name", source.ID)

关于c# - MVC 3 DropDownFor 和 ViewModel 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com