微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将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);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐