【问题标题】:knockout with MVC4 how to bind a property of an object to a list with values用 MVC4 淘汰如何将对象的属性绑定到具有值的列表
【发布时间】:2013-07-17 04:58:11
【问题描述】:

我是第一个使用淘汰赛的 MVC4 应用程序。我有一个书单,每本书都有一个类别('domeniu')。我需要在插入或更新时拥有一个包含所有类别的下拉列表。

书籍和类别位于 SQL 数据库中(首先使用 EF 代码)。我设法查看了所有书籍的列表,编辑和插入此属性除外。最后一次尝试是向我的 book 对象添加一个属性,并使用包含所有类别的 JSON 对象填充它。 它是这样的: 视图模型类的代码

this.titlul = ko.observable("@Model.Carte.Titlul"); …… this.domeniuId = ko.observable("@Model.Carte.DomeniuID"); this.domenii = ko.observable(JSON.stringify(@Html.Raw(Model.DomeniiJSON)));

以及this.domenii的调试器中的结果

[{"domeniuId":1,"domeniul":"Engleza"},{"domeniuId":2,"domeniul":"Romana"},{"domeniuId":3,"domeniul":"Matematica" },{"domeniuId":4,"domeniul":"Geografie"},{"domeniuId":5,"domeniul":"Istrie"}]

在书籍中,我有 domeniuId 属性,因此我需要从类别中显示 domeniul 属性并将 domeniulId 放入书籍中。 但是这段代码没有显示任何内容:

<select id="domeniuId" name="domeniuId" data-bind="options: model.domenii, optionsText: 'domeniul', optionsValue: 'domeniuId', value: model.domeniuId, optionsCaption: 'Alege domeniul...'" /> 

我在哪里可以找到有关此问题的示例或其他信息?

[更新]

我班级中的一些代码将成为视图模型

this.titlul = ko.observable("@Model.Carte.Titlul"); 
this.domeniuId = ko.observable("@Model.Carte.DomeniuID"); 
this.domenii = ko.observable(JSON.stringify(@Html.Raw(Model.DomeniiJSON))); 

以及domenii 在调试器中的结果:

[{\"domeniuId\":1,\"domeniul\":\"Engleza\"},{\"domeniuId\":2,\"domeniul\":\"Roma‌​na\"},{\"domeniuId\":3,\"domeniul\":\"Matematica\"}]

【问题讨论】:

  • 您能发布您当前的模型定义吗?

标签: entity-framework asp.net-mvc-4 knockout.js


【解决方案1】:

试试这个:

<select
id="domeniuId"
name="domeniuId"
data-bind=" options: model.domenii,
            optionsText: 'domeniul',
            optionsValue: 'domeniuId',
            value: 'domeniuId',
            optionsCaption: 'Alege domeniul...'" />

JS:

var model = {
    domenii: json
};

ko.applyBindings(model);

jsFiddle 上查看它。

【讨论】:

  • 嗨,我的模型类型是 Book 而不是 Category。我认为这是我感到困惑的地方。我尝试向我的模型添加一个属性,并在该道具中放置了类别(model.domenii)
  • 我班级中的一些代码将成为视图模型 this.titlul = ko.observable("@Model.Carte.Titlul"); ...... this.domeniuId = ko.observable("@Model.Carte.DomeniuID"); this.domenii = ko.observable(JSON.stringify(@Html.Raw(Model.DomeniiJSON))); 以及调试器中domenii的结果 [{\"domeniuId\":1,\"domeniul\":\"Engleza \"},{\"domeniuId\":2,\"domeniul\":\"Romana\"},{\"domeniuId\":3,\"domeniul\":\"Matematica\"}]
  • 只需将代码添加到原始问题的正文中(此外,通过这样做,查看问题的每个人都会获得有关该问题的更多信息)。
  • H 这完全是关于格式化结果我用 '\"' 转义了 '"' ,这就是它不起作用的原因。我该怎么办?
猜你喜欢
  • 2023-03-31
  • 2012-09-23
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-23
相关资源
最近更新 更多