如何将字符串中的加号从视图传递给控制器?
Posted
技术标签:
【中文标题】如何将字符串中的加号从视图传递给控制器?【英文标题】:How to pass a plus sign in a string from a view to controller? 【发布时间】:2019-09-27 06:46:42 【问题描述】:我在 MVC 视图中有一个表单,提交时会传回各种值。但是其中一个值可以是“70+” 问题是加号作为空格被传递回控制器,即“70”
这是视图上显示的输入元素:
<input type="hidden" value="70+" name="TestInput">
它是使用以下行中的 knockout.js 生成的:
<input type="hidden" data-bind="value:name" name="TestInput" />
当页面首次加载时,加号包含在模型中,但当提交表单时,加号不再是模型的一部分。
注意:输入的值是可变的,因此它可能根本不包含加号,但如果包含加号,我需要正确传递它。
如何确保将加号传递回控制器?
【问题讨论】:
你可以使用另一个符号并在之后替换它 可能相关(取决于您将值传输到控制器的方式):***.com/a/45561894/2590375 听起来你需要URLEncode
数据才能发送到服务器。 + 符号是查询字符串中的空格。
【参考方案1】:
正如@Steve 在 cmets 中提到的,需要对符号进行编码。
所以我使用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" />
【讨论】:
以上是关于如何将字符串中的加号从视图传递给控制器?的主要内容,如果未能解决你的问题,请参考以下文章