Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Javascript使用实体框架更新数据库_Javascript_Asp.net Mvc_Entity Framework_Relational Database - Fatal编程技术网

如何从Javascript使用实体框架更新数据库

如何从Javascript使用实体框架更新数据库,javascript,asp.net-mvc,entity-framework,relational-database,Javascript,Asp.net Mvc,Entity Framework,Relational Database,我对entity framework和MVC如何确定要使用哪些HTML元素来更新数据库中的值感到有点困惑。我可以将数据从数据库中获取到要显示的模型中,但是如何在HTML/JS中创建自定义接口并从DOM或JS对象中获取要更新的数据库值呢?我希望能够更新模型中的相关数据(在列表中),但我不确定如何连接所有数据以使其正常工作。在MVC中,有一个“模型绑定”的概念。本质上,您创建了一组字段,这些字段的名称根据约定反映了要将发布的数据绑定到的对象或对象层次结构。例如,如果您有如下操作: public Ac

我对entity framework和MVC如何确定要使用哪些HTML元素来更新数据库中的值感到有点困惑。我可以将数据从数据库中获取到要显示的模型中,但是如何在HTML/JS中创建自定义接口并从DOM或JS对象中获取要更新的数据库值呢?我希望能够更新模型中的相关数据(在列表中),但我不确定如何连接所有数据以使其正常工作。

在MVC中,有一个“模型绑定”的概念。本质上,您创建了一组字段,这些字段的名称根据约定反映了要将发布的数据绑定到的对象或对象层次结构。例如,如果您有如下操作:

public ActionResult Create(Foo foo)
Foo
有一个属性,
Bar
,那么您的表单中就会有一个名为“Bar”的输入。当这被发布到操作中时,modelbinder将把post数据中的名称与相应的命名属性相匹配,并将其值设置为该发布的值。如果您的类型由另一个类型组成,则可以使用
链接属性。例如,如果
Bar
本身是一个具有属性
Baz
的类,则输入的名称将是“Bar.Baz”。对于列表类型,您需要添加一个索引器,即“bar[0].Baz”

但是,MVC提供的
HtmlHelper
扩展为您提供了这种命名逻辑,因此通过以下方式创建表单输入通常会更好、更容易:

@Html.TextBoxFor(m => m.Bar)
而不是手动尝试创建具有正确名称的HTML输入


重要的是,对于列表类型,modelbinder只能将值绑定到可索引的对象,即
list
T[]
。像
ICollection
这样的东西不起作用,因为它不能被索引。通常,在使用集合时需要使用视图模型,以便可以映射到modelbinder可以使用的列表类型以及集合所需的
ICollection
type实体框架。也就是说,不管怎样,视图模型都是很好的做法,因为它只要求您思考数据如何进入数据库,从而消除了一系列潜在问题。

自定义界面指的是表单,比如要填写的客户端详细信息?只需使用ajax即可。