0

我对实体框架和MVC如何确定用于更新数据库中的值的HTML元素有点困惑。我可以从数据库中获取数据以显示模型,但是如何在HTML/JS中创建自定义接口并从数据库或JS对象获取数据库的值?我有模型中的相关数据(在列表中),我希望能够更新,但我不知道如何挂钩一切,以使其工作。如何使用Javascript中的实体框架更新数据库

+0

通过自定义界面,你的意思是一种形式,说客户端的细节被填充?只需使用ajax即可。 –

回答

1

在MVC中,有一个“模型绑定”的概念。从本质上讲,您可以根据惯例创建一组名称,这些名称用于映射要将发布的数据绑定到的对象或对象层次结构。举例来说,如果你有这样一个动作:

public ActionResult Create(Foo foo) 

而且Foo有一个属性,Bar,那么你必须在名为“酒吧”的形式输入。当它发布到动作中时,模型绑定器将使用适当的命名属性匹配发布数据中的名称,并将其值设置为该发布值。如果您的类型由另一种类型组成,那么您将使用.来链接属性。例如,如果Bar本身是一个具有属性Baz的类,则输入的名称将是“Bar.Baz”。对于列表类型,您需要添加一个索引器,即“Bars [0] .Baz”。

通过MVC提供的HtmlHelper扩展照顾这个命名逻辑的你,虽然,所以它是通过像通常更好,更容易创建表单输入:

@Html.TextBoxFor(m => m.Bar) 

而不是手动试图建立一个带正确名称的HTML输入。

重要的是,对于列表类型,模型绑定器只能将值绑定到可以是索引的东西,即List<T>T[]。像ICollection<T>之类的东西将无法工作,因为它无法编入索引。通常,在处理集合时需要使用视图模型,因此您可以映射到/从列表类型(该类型绑定器可以使用该类型以及ICollection<T>类型实体框架对集合的要求)。也就是说,视图模型是一种很好的做法,无论如何,因为它会消除大量潜在问题,只需要您考虑数据如何进入数据库。

相关问题