【发布时间】:2019-07-28 00:55:18
【问题描述】:
我有一个 ASP.NET 项目,目前正在使用 JQuery 和 Bootstrap 创建前端。此前端的一部分涉及用户填写由 30 多个 input 元素组成的表单,然后需要将其提交给后端 API。
通常,如果我需要与 API 通信,我会使用 JQuery 内置的 post() 和 post() 方法,并构造一个查询字符串以在这些方法中使用。
但是,由于有大量的input 元素与此表单相关联,我犹豫是否要使用这种特殊方法,因为将数据提交给 API 似乎是一种非常混乱和迂回的方式。
很遗憾,在这种特殊情况下,我无法使用通常的<input action="action.xx"> 方法,因此无法提交整个表单。
但是我真的不想在下面做这样的事情:
queryString =
"?input1=" + $("#input1").val() +
"&input2=" + $("#input2").val() ... //repeat for 30+ input elements
$.post(url + queryString, funtion(data){ ... });
肯定有更好的方法来解决这个特定问题,不涉及创建一个可恶的大字符串并通过 JQuery 的post 方法传递它?
【问题讨论】:
-
我的第一个问题是为什么您要发送一个带有空白正文但有大量 GET 参数的 POST 请求?无论如何,这些输入的名称是什么?他们是否遵循
inputX的约定?他们有共同的班级吗? -
@ChrisG 不确定我理解第一个问题的确切含义。它们有一个相对通用的 ID 命名约定,没有通用的类,但我可以相对容易地放入一个。
-
POST 请求的正文中有其查询字符串。您将它们放在 URL 中,这意味着它们是 GET 参数。您基本上需要
$.post(url, queryString, ...),其中queryString开头没有?。 -
您可以发送整个表单或自己填充对象。 肯定有更好的方法来解决这个特定问题不,不是真的。如果您想做一些不标准的事情,那么您必须自己编写!
-
@ChrisG 啊,抱歉。不,你是对的,它们是通过身体发送的,在我写这个问题时没想到
标签: javascript jquery asp.net api