将Form Post转换为Querystring
Convert Form Post to Querystring
我正在ASPDotNetStorefront开发一个XML包(基本上是无关紧要的)。基本上,我有一个表单,它有一堆字段和一个"提交"表单的按钮。实际上,我想让按钮将字段的值转换为查询字符串,然后执行GET而不是POST。
我想我可以用JavaScript做这样的事情,也许是jQuery,但我不确定我会怎么做。理想情况下,我想要一个可以调用的简单函数。
我应该注意,我使用的是ASP.Net,我只想将字段的实际值转换为查询字符串,而不是任何状态信息。这是一个搜索表单。
使用jQuery:
$.ajax({
url: 'url/Action',
type: 'GET',
data: $('#formId').serialize()
})
使用:
jQuery ajax
jQuery序列化
Response.Redirect("Webform2.aspx?Name=" +
this.txtName.Text + "&LastName=" +
this.txtLastName.Text);
在WebForm2.aspx中,您可以这样做
for (int i =0;i < Request.QueryString.Count;i++)
{
Response.Write(Request.QueryString[i]);
}
对于jquery,您可以使用AJAX在页面之间发送数据。这是示例代码这是我在ASP.NET中找到的最好的使用jQuery for AJAX的文章:codeproject使用AJAX 的示例
<div style="width:350px">
<div style="background:#CCC"> <a href="#" id="editName">Edit</a></div>
<div id="divView"><asp:literal id="litName" runat="server"/></div>
<div id="divEdit" style="display:none"></div>
</div>
var options = {
method: 'POST',
url: 'ChangeName.aspx',
after: function(response) {
$("div#divView").html(response).show();
$("div#divEdit").empty().hide();
$("a#editName").show();
}
};
//bind to form's onsubmit event
$("form#ChangeName").ajaxForm(options);
没有AJAX的示例。带有查询字符串的简单Javascript
<script lang=”javascript” type=”text/javascript”>
function testQueryStrings()
{
window.location = “search.aspx?q=abc&type=advanced”;
}
</script>
<input type=”button” id=”btn” value=”Test Query Strings” onclick=”testQueryStrings()” />
for search.aspx
<script lang=”javascript” type=”text/javascript”>
var qrStr = window.location.search;
var spQrStr = qrStr.substring(1);
var arrQrStr = new Array();
// splits each of pair
var arr = spQrStr.split(‘&’);
for (var i=0;i<arr.length;i++){
// splits each of field-value pair
var index = arr[i].indexOf(‘=’);
var key = arr[i].substring(0,index);
var val = arr[i].substring(index+1);
// saves each of field-value pair in an array variable
arrQrStr[key] = val;
}
document.write(“<h1>Search parameter: “+arrQrStr["q"]+”. Extra parameter: “+arrQrStr["type"]+”</h1>”);
您可以这样做:
<input type="submit" value="get">
与(因为你标记了这个jQuery):
jQuery('input[type=submit]').click(function () { this.form.method = 'GET'; });
……但可能会进入可添加书签的数据,或者会做出重大更改的表单听起来会让用户感到困惑(我想不出有任何其他理由从post切换到在最终用户控件中运行)。
如果你总是想获取数据,那么你应该修改发送到浏览器的源代码,而不是用JS动态地摆弄DOM。
实际上,您只需要更改HTML中<form>
标记的method
属性。
如果您不能直接控制.NET组件生成的标记,那么在加载页面时,您可以始终操作<form>
标记并使用JavaScript设置属性。
或者,您可以将单击事件绑定到表单的提交按钮,然后取消该事件(例如,通过返回false
),然后自己执行GET
。
您可以使用<form method="GET">
而不是<form method="POST">
。不需要Javascript(除非您不想刷新页面)。
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- 检测个位数整数时正在转换毫秒
- 从javascript到jquery的转换
- DOM事件通过JSON转换为java
- 将圆柱体转换为弯管
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- JavaScript代码问题:我正在将对象转换为数组
- 将Form Post转换为Querystring
- 如何将querystring转换为jquery中的json对象