当我使用JQuery序列化我的查询字符串的id列表时,它会产生一个类似的URL:
mydomain/mypage?id=1&id=2&id=3&id=4
以下是我的表单
<div><input type="text" name="id" value="1" /></div>
<div><input type="text" name="id" value="2" /></div>
<div><input type="text" name="id" value="3" /></div>
<div><input type="text" name="id" value="4" /></div>
<div><input type="text" name="id" value="5" /></div>
<div><a href="#" id="myLink">CLICK ME!</a></div>
<script>
$('#myLink').click(function() {
//see: http://api.jquery.com/serialize/
myids = $('input[name=id]').serialize();
alert( myids );
return false;
});
</script>
-live demo - http://jsfiddle.net/yDpu6/2/
<小时/> 当我试图从我的控制器ActionResult获取querstring值时,我只得到第一个id(例如:1),但是当使用Request.Quesrtring [“id”]时,我得到了所有id(例如:: 1,2,3,4) 。
有没有办法可以在不使用Request.Quesrtring [“id”]的情况下将所有序列化ID传递到我的控制器中?
答案 0 :(得分:0)
如果您假设下面的代码会给出所有值,那么您的假设是错误的
var value =('。classname')。val();
您需要在发布ID之前将值推送到数组。
查看代码
<input type="text" class="idList" value="1"/>
<input type="text" class="idList" value="2"/>
<input type="button" value="Post Values" onclick="javascript:postValues()" />
<script type="text/javascript">
function postValues() {
var values = [];
$('.idList').each(function () {
values.push($(this).val());
});
postData = { id: values }
$.ajax({
type: "POST",
url: "/Home/PostIds",
data: postData,
dataType: 'json',
success: function (data) {
alert($('.idList').val());
},
traditional: true
});
}
</script>
操作方法代码
public ActionResult PostIds(List<string> id)
{
return null;
}