【发布时间】:2017-02-05 19:09:21
【问题描述】:
我正在使用标准 Jquery 以编程方式从文本输入中读取数据,如下所示:
var listName = $('#list').val();
然后我在提交之前将隐藏的输入字段添加到表单中:
var myForm = $("#myForm);
myForm.append('<input type="hidden" name="List" value="' + listName + '" />');
在一个示例中,字段中的值为:
Key Date & Times
所以在 UI 上看起来像这样
<input type="hidden" name="MyList" value="Key Date & Times" />
当我使用以下方式提交表单时:
var myForm = $("#myForm);
myForm.submit();
并在我只看到的 asp.net-mvc 服务器端检查它:
Key Date
被发送过来。经过一番研究,建议编写一些javascript来运行该值:
encodeURIComponent()
在这样做并查看服务器端之后,我现在看到:
Key%20Date%20%26%20Times
如何将其转换回
Key Date & Times
在 C# asp.net-mvc 服务器端?或者另外,如果我在客户端做错了什么,如果您有任何建议,请告诉我。
我的主要问题是为什么我必须担心在表单中编码隐藏输入框的值。我原以为这会为你处理好。
【问题讨论】:
-
很可能你在客户端做错了什么......但你没有显示任何代码。
-
我不确定要显示什么其他代码。我有一个带有上面隐藏输入的表单,我可以通过 jquery 调用 Form.Submit。您认为还有哪些其他代码在这里会有所帮助?
-
如果你正在做一个普通的 http post 表单提交,我认为你不需要做任何具体的事情来解决这个问题。它应该工作!您是否在劫持表单提交事件并发出 ajax GET 请求?
-
@Shyju - 我只是在打电话: $("myForm").submit();来自 jquery(没有 ajax)。我正在做的唯一不是普通的事情是从文本框中读取一个值,然后在调用表单提交之前以编程方式将该值放入隐藏的输入中((
-
我不能再重复这种行为了。
标签: c# jquery asp.net-mvc forms encoding