如何在视图中向控制器传递字符串中的加号?

时间:2019-05-09 12:18:54

标签: c# knockout.js

我在MVC视图中有一个表单,提交后,该表单会传回各种值。但是其中一个值可以是“ 70+”。问题是加号作为空白传递回控制器,即“ 70”

这是显示在视图上的输入元素:

<input type="hidden" value="70+" name="TestInput">

它是使用以下一行中的基因敲除产生的:

<input type="hidden" data-bind="value:name" name="TestInput" />

页面第一次加载时,模型中会包含加号,但是提交表单时,加号不再是模型的一部分。

注意:input的值是可变的,因此它可能根本不包含加号,但如果需要,则需要正确地传递它。

如何确定加号被传回控制器?

1 个答案:

答案 0 :(得分:0)

就像@Steve在评论中提到的那样,需要对符号进行编码。

因此,我使用encodeURIComponent在koViewModel中添加了一个新属性(encodedName):

self.name = ko.observable(data.name);
self.encodedName = ko.observable(encodeURIComponent(data.name));

然后仅在表单输入中使用它而不是名称:

<input type="hidden" data-bind="value:encodedName" name="TestInput" />