如何动态获取和发布数据

时间:2019-11-14 21:20:38

标签: javascript c# ajax asp.net-mvc

大家好,我使用的是ASP.NET C#MVC架构。

现在我有一个带有表的视图“ Index.cshtml”。

<table id="myTableData">
    <thead>
        <tr>
            <th>A</th>
            <th>B</th>
            <th>C</th>
            <th>D</th>
            <th>E</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>val1</td>
            <td>val2</td>
            <td>val3</td>
            <td>500</td>
            <td>val5</td>
        </tr>
        <tr>
            <td>val1</td>
            <td>val2</td>
            <td>val3</td>
            <td>1500</td>
            <td>val5</td>
        </tr>
    </tbody>
</table>

<script>
init();
function init(){

    addRowHandlers('myTableData');

}

function addRowHandlers(tableId) {
    if(document.getElementById(tableId)!=null){
        var table = document.getElementById(tableId);
        var rows = table.getElementsByTagName('tr');
        var AB = '';
        var BC = '';
        var CD = '';
        var DE = '';
        for ( var i = 1; i < rows.length; i++) {

            rows[i].i = i;
            rows[i].onclick = function() {

                AB = table.rows[this.i].cells[0].innerHTML;                
                BC = table.rows[this.i].cells[1].innerHTML;
                CD = table.rows[this.i].cells[2].innerHTML;
                DE = table.rows[this.i].cells[3].innerHTML;\
            };
        }
    }
}
</script>

当前,我可以使用此脚本在一行中获取所有信息,并且我可能会使用此ajax进行发布

<script>

    function seleccionar() {
        $.ajax({
            url: '@comercial.Models.Base.DirectorioRaiz()MovimientosCliente/SeleccionarOperacion',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json',
            data: { operacion: operacion, metodo: metodo, monto: monto, fecha: fecha },
            success: function (response) {
                $('#divModalDeFacturas').html(response);
            },
            error: function (error) {
                console.log(error);
            }
        });
    }
</script>

基本上,我需要使用buttom来获取我选择的行的所有数据,然后使用ajax将其发布到另一个视图,有人可以向我解释吗?

如何将两个脚本一起使用?

我知道如何处理使用输入发布的FormCollection表单数据,大多数情况下,我在表的td中使用隐藏的输入,但是我需要动态地执行此操作,这样会有些困难,因为我可以至少以我尝试的方式,将静态变量用于提取数据,但这没有用。

现在,我认为最好的方法是将这些数据放入控制器中,我读到另一个堆栈答案,其中说这些输入是由控制器使用像这样的ActionResult内部的参数捕获的

[HttpPost]
public ActionResult MyView(int val1, int val2, intval3, etc...)
{
return View();
}

我不知道我在浏览互联网D上的大量数据时感到迷::

这是我说的答案,它说明了如何通过控制器检索此信息

Link to answer

1 个答案:

答案 0 :(得分:0)

首先,如果您要在示例中使用POST,则必须使用HttpPostAttribute装饰您的操作。必须在return语句中指定必须返回的视图:

[HttpPost]
public ActionResult MyView(int val1, int val2, intval3, etc...)
{
return View("The view you want to return");
}

还要查看您的问题和javascript代码,但目标不明确,您是希望在索引视图中填充一些动态内容还是要重定向到另一个视图?

然后您的JavaScript代码也完全错误。首先,在“数据”参数上指定一个json对象,然后将内容类型设置为“ application / x-www-form-urlencoded”,而不是“ application / json”。另外,如果您尝试发布json,则您的“数据类型”应该是“ json”而不是“文本”。 然后您的网址似乎是错误的。为避免混淆和错误,请始终使用Url.Action方法,您可以在其中指定控制器所需的操作。

说实话,如果我是您,我将重新访问MVC文档,因为您似乎缺少有关MVC的大量知识,因为它提供了许多确实有用的示例和演练。 (https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/)。

我还建议对Http协议进行回顾,您可以在google上进行搜索,并且有很多资源。