MVC控制器 - 在不使用request.querystring的情况下获取重复的查询结果?

时间:2013-02-24 01:08:24

标签: jquery asp.net-mvc asp.net-mvc-3

当我使用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传递到我的控制器中?

1 个答案:

答案 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;
}