将Javascript数组发送到控制器并在另一个URL中呈现视图结果

我现在尝试了4天没有成功,我是一名初级开发人员,所以这就是原因.

内容

我有一个flexigrid,其中显示了从数据库收集的数据,在一个非常特殊的列中,有一个复选框,我创建了一个javascript函数,当您单击该复选框时,它会获取实体ID并将其存储在javascript数组中发送到ActionResult.

问题:

我可以使用Ajax进行传递,但无法呈现ActionResult视图,但我得到404.尝试使用@ Html.ActionLink,但是不重新协调javascript数组.
因此,如何将javascript数组发布到控制器并遵循该控制器流程,例如使用另一个URL渲染另一个视图,该怎么做?

Javascript数组:

var arrayId = new Array();

视图:

<a href="@Url.Action("SomeAction", "SomeController", new { area = "SomeArea", arrayId = arrayId })">

控制器:

06002

解决方法

> Ajax,如果可以在另一个URL中呈现视图.
> HTML’<如果可以传递javascript数组,则为>‘表格.
>或C#Helper,也许将javascript数组传递给视图模型,但是我不知道该怎么做.
> PartialView?没办法.

解决方法:

…that I want to send to a ActionResult.

我相信您可能在这里有些困惑.在ASP.NET MVC中,任何接收来自AJAX或完整请求的请求的操作都是动作.该操作的结果(例如JSON响应或整页结果)是ActionResult.

总是像请求>那样思考响应.请求由您的操作处理,响应是操作输出内容.

现在,您的问题.将此页面视为第一个页面,该页面数据库输出ID:

<form method="post" action="/home/someaction">
    <ul>
        <li><label><input type="checkBox" name="arrayId" value="1" />1</label></li>
        <li><label><input type="checkBox" name="arrayId" value="2" />2</label></li>
        <li><label><input type="checkBox" name="arrayId" value="3" />3</label></li>
        <li><label><input type="checkBox" name="arrayId" value="4" />4</label></li>
    </ul>
    <button>Post array to action SomeAction</button>
</form>
<script type="text/javascript">
        $(function(){
            $('form').on('submit', function () {
                $('checkBox:checked').each(function (ix, el) {
                    $(el).attr('name', 'arrayId[' + ix + ']');
                });
            });
        });
</script>

让我们看看这里发生了什么:

>对于数据库返回的每个项目,我们都有一个复选框.注意名称attr,这很重要
>一切都在指向我们第二个动作的表格内.这是将接收数组的那个
>提交表单后,我们将遍历每个选中的复选框,以将名称更改为arrayId [0].这是必需的. ASP.NET使用名称attr将接收到的数据绑定到操作预期的操作.如果它是一个集合(如列表或数组),则该名称还必须包括一个基于0的索引器.这就是我们在发布表单之前所做的.

将收到此帖子的操作如下所示:

[HttpPost]
public ActionResult SomeAction(string[] arrayId)
{
    return View(arrayId);
}

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...