我有很多数据需要从控制器传递到视图,我正在尝试尽可能使用强类型视图模型。
举个例子,你有一个包含大量人员的数据库 - 我们想编辑一个人,同时显示一个相同姓氏的每个人的列表。
public class person
{
public string ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class testviewmodel
{
public List<person> people { get; set; }
public person newperson { get; set; }
}
我不能使用 testviewmodel 作为帖子的模型,因为表单/数据中还有很多事情要做。我已经设法构建了一个模型,其中包含几乎所有表单数据,除了来自视图模型的数据。
我通过以下方式以以下形式生成一些项目:
<input asp-for="newperson.Firstname" class="form-control"/>
作为回报,这将产生:
<input class="form-control" disabled type="text" id="newperson_Firstname" name="newperson_Firstname" value="xxxx" />
但是,我尝试将newperson_Firstname
添加到我的模型中以及许多其他组合中,并且,我只是无法看到数据。
任何人都可以提供帮助并让我知道我做错了什么 - 或者,我应该调整视图模型以更适合目的吗?
。最后,是否有相当于var_dump($_REQUEST);?目前,我正在添加断点并尝试在 Locals 中打开不同的项目,但是,这是反复试验和需要很长时间......我只是想找到表格在哪里!
你不需要在请求对象中四处挖掘。如果将 ViewModel 的实例传递给发布操作,模型绑定将负责自动填充Person
属性:
[HttpPost]
public IActionResult Edit(TestviewModel model)
{
var person = model.Person; // add a breakpoint here, should represent the posted values
}