【发布时间】:2014-07-05 10:59:15
【问题描述】:
我看到了这个question 关于 KO 绑定和 MVC 的内容,这让我很担心。这个问题很长,我不知道它是否适用于我正在尝试做的事情。
我有一个输入:
<input
id="Item_ReqestedItem_ItemNumber"
type="text" value="" name="Item.ReqestedItem.ItemNumber"
data-bind="value: ItemNumberItem, disable: ItemNumberItem.isServerSet"
disabled="">
如果我在此字段中手动键入一个值并 POST,则该值将传递给控制器/操作。如果我让 KO 填充此数据,则 POST 的值显示为 null。
当我使用 Knockout 值时,将此值发送到 POST 所需的最少工作量是多少?
- 我没有使用 ko.editable。我需要吗?
- 我没有做任何事情来支持 MVC 和 KO 在文档就绪中的这种关系。为了完成这个简单的任务,我需要这样做吗?
更新
cmets 是正确的。导致值为空的是禁用属性。简单的fix 是只读的。我仍然没有解决这个问题。摆脱残疾人不是一种选择。我不明白如何在不抛弃 KO 框架的情况下切换到只读。如何将禁用的数据返回到服务器?我更喜欢用 KO 来解决这个问题,因为我必须管理大约 30 个输入。
【问题讨论】:
-
ItemNumberItem.isServerSet何时为真?是当您让“KO 填充此数据”时? -
是的,我尝试删除禁用,但没有任何区别
-
没有?好的,我以为是因为某些浏览器在禁用时不发送值
-
敲除的
value绑定会改变它绑定的输入值。因此,只要输入具有模型绑定器可以映射到您的模型的名称,通过敲除更改 ItemNumberItem 与手动更改它没有任何不同。我的猜测也是提交时 isServerSet 为真。如果比较两个 POST 请求会怎样? -
@GôTô - 你们俩都为我在走错路时省去了很多麻烦。如果您想发布答案,我想给你们俩一些信任。与你们两个所做的相比,问题的最后一部分很容易解决。
标签: html asp.net-mvc knockout.js