Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC 5不更新表行并发送详细信息(使用datatables)_C#_Asp.net Mvc_Bootstrap 4 - Fatal编程技术网

C# ASP.NET MVC 5不更新表行并发送详细信息(使用datatables)

C# ASP.NET MVC 5不更新表行并发送详细信息(使用datatables),c#,asp.net-mvc,bootstrap-4,C#,Asp.net Mvc,Bootstrap 4,我想更新我的datatable行并发送submit。但是不要更新,因为我的行数据发送空。如何发送我选择行并更新行并提交 @model List<ASTek.Models.CustomersModel> @{ ViewBag.Title = "Customers"; Layout = "~/Views/Shared/_Layout.cshtml"; } @using (Html.BeginForm("TopluSms", "Mobil", F

我想更新我的datatable行并发送submit。但是不要更新,因为我的行数据发送空。如何发送我选择行并更新行并提交

 @model List<ASTek.Models.CustomersModel>
    @{
    ViewBag.Title = "Customers";
    Layout = "~/Views/Shared/_Layout.cshtml";
    }
     @using (Html.BeginForm("TopluSms", "Mobil", FormMethod.Post))
    {
    @Html.AntiForgeryToken()
    <table class="table table-striped table-bordered table-responsive" id="tblCustomer" style="font-size:11px; position:center">
        <thead>
            <tr style="background-color:#8c7fcf">
                <th>Müşteri</th>
                <th>Telefon</th>
                <th>Bakiye</th>
                <th></th>
                <th></th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model)
            {
                <tr>
                    <td>@Html.DisplayFor(modelItem => item.FirmaName)</td>                  
                    <td>@Html.TextBoxFor(modelItem => item.TLF)</td>
                    <td> @Html.EditorFor(modelItem => item.Bakiye)</td>
                    <td> @Html.DisplayFor(modelItem => item.LOGICALREF)</td>
                    <td>
                        @Html.CheckBoxFor(modelItem => item.IHTAR, new { style = "width:18px;height:18px;" })
                    </td>
                    <td>
                        <input id="@item.LOGICALREF" type="submit" value="Update" class="btn btn-info" />
                    </td>
                </tr>
            }
        <tbody>
    </table>
}
我的控制器选择列表并发送数据表

 [HttpGet]
    public ActionResult TopluSms()
    {
        string aa = User.Identity.Name;
        HomeController.sqlconnection con = new HomeController.sqlconnection();
        string FIRMA = "select t.FIRMA,t.donem FROM dbo.TBLFRM as t where T.USERNAME='" + aa + "'";
        SqlCommand cmd = new SqlCommand(FIRMA, con.connect());
        SqlDataReader rdrr = cmd.ExecuteReader();
        rdrr.Read();
        string firma = rdrr["FIRMA"].ToString();
        string donem = rdrr["DONEM"].ToString();
        string Musteriler = "SELECT CLCARD.LOGICALREF, CLCARD.DEFINITION_ AS  UNVANI,CLCARD.TELNRS1, CAST((SUM((1 - CLFLINE.SIGN) * CLFLINE.AMOUNT) - SUM(CLFLINE.SIGN * CLFLINE.AMOUNT)) as DECIMAL(15, 2)) AS[BAKIYE],CLCARD.WARNFAXNR AS IHTAR " +
            "FROM dbo.LG_" + firma + "_" + donem + "_CLFLINE as CLFLINE INNER JOIN dbo.LG_" + firma + "_CLCARD as CLCARD ON CLFLINE.CLIENTREF = CLCARD.LOGICALREF AND CLFLINE.CANCELLED = 0 " +
            "GROUP BY CLCARD.LOGICALREF, CLCARD.CODE, CLCARD.DEFINITION_, CLCARD.ACTIVE, CLCARD.CITY, CLCARD.CAPIBLOCK_CREADEDDATE ,CLCARD.TELNRS1,CLCARD.WARNFAXNR " +
            "HAVING(CLCARD.CODE LIKE '%') and(CLCARD.DEFINITION_ LIKE '%') AND(CLCARD.ACTIVE = 0) " +
            "ORDER BY CLCARD.DEFINITION_ DESC ";
        // var model = new List<CustomersModel>();
        List<CustomersModel> items = new List<CustomersModel>();
        using (SqlCommand cmdd = new SqlCommand(Musteriler, con.connect()))
        {
            //con.connect().Open();
            SqlDataReader rdr = cmdd.ExecuteReader();

            while (rdr.Read())
            {

                var musteri = new CustomersModel();
                musteri.LOGICALREF = rdr[0].ToString();
                musteri.FirmaName = rdr[1].ToString();
                ViewBag.bakiye = rdr[3].ToString();
                musteri.TLF = rdr[2].ToString();
                musteri.Bakiye = rdr[3].ToString();
                if (rdr[4].ToString() == "1") { musteri.IHTAR = true; }
                else { musteri.IHTAR = false; }
                if (Convert.ToDouble(musteri.Bakiye) > 0)
                {
                    musteri.SIGN = "0";
                }
                else
                {
                    musteri.SIGN = "1";
                }
                items.Add(musteri);

            }
            con.connect().Close();
            return View(items);
        }
    }
您正在发送模型列表,但您的操作只针对单个模型。 但是,如果您将函数的参数更改为列出模型,这可能会起作用,但这不是执行此类操作的正确方法

尝试使用任何前端网格管理框架,如,等等

阅读其中的文档并实施。他们使用ajax处理CRUD

并尝试遵循后端代码的任何设计模式。

您正在发送一个模型列表,但您的操作只针对一个模型。 但是,如果您将函数的参数更改为列出模型,这可能会起作用,但这不是执行此类操作的正确方法

尝试使用任何前端网格管理框架,如,等等

阅读其中的文档并实施。他们使用ajax处理CRUD


并尝试遵循后端代码的任何设计模式。

是否使用fiddler或网络检查正在将表单发送到控制器的浏览器?使用循环大量相同名称的输入我想更新表单中的datatable行您有多个CustomerModel对象。我建议您删除表单并在那里使用ajax。当你点击按钮时,只需获取相关数据并将其发送给你的行动。我不知道如何做。我从未使用过Ajax。您是否正在使用fiddler或网络检查正在将表单发送到控制器的浏览器?使用您的循环,有许多相同名称的输入。我想更新表单中的datatable行。您有多个CustomerModel对象。我建议您删除表单并在那里使用ajax。当你点击按钮时,只需获取相关数据并将其发送给你的行动。我不知道如何做。我从未使用过ajax
 [HttpGet]
    public ActionResult TopluSms()
    {
        string aa = User.Identity.Name;
        HomeController.sqlconnection con = new HomeController.sqlconnection();
        string FIRMA = "select t.FIRMA,t.donem FROM dbo.TBLFRM as t where T.USERNAME='" + aa + "'";
        SqlCommand cmd = new SqlCommand(FIRMA, con.connect());
        SqlDataReader rdrr = cmd.ExecuteReader();
        rdrr.Read();
        string firma = rdrr["FIRMA"].ToString();
        string donem = rdrr["DONEM"].ToString();
        string Musteriler = "SELECT CLCARD.LOGICALREF, CLCARD.DEFINITION_ AS  UNVANI,CLCARD.TELNRS1, CAST((SUM((1 - CLFLINE.SIGN) * CLFLINE.AMOUNT) - SUM(CLFLINE.SIGN * CLFLINE.AMOUNT)) as DECIMAL(15, 2)) AS[BAKIYE],CLCARD.WARNFAXNR AS IHTAR " +
            "FROM dbo.LG_" + firma + "_" + donem + "_CLFLINE as CLFLINE INNER JOIN dbo.LG_" + firma + "_CLCARD as CLCARD ON CLFLINE.CLIENTREF = CLCARD.LOGICALREF AND CLFLINE.CANCELLED = 0 " +
            "GROUP BY CLCARD.LOGICALREF, CLCARD.CODE, CLCARD.DEFINITION_, CLCARD.ACTIVE, CLCARD.CITY, CLCARD.CAPIBLOCK_CREADEDDATE ,CLCARD.TELNRS1,CLCARD.WARNFAXNR " +
            "HAVING(CLCARD.CODE LIKE '%') and(CLCARD.DEFINITION_ LIKE '%') AND(CLCARD.ACTIVE = 0) " +
            "ORDER BY CLCARD.DEFINITION_ DESC ";
        // var model = new List<CustomersModel>();
        List<CustomersModel> items = new List<CustomersModel>();
        using (SqlCommand cmdd = new SqlCommand(Musteriler, con.connect()))
        {
            //con.connect().Open();
            SqlDataReader rdr = cmdd.ExecuteReader();

            while (rdr.Read())
            {

                var musteri = new CustomersModel();
                musteri.LOGICALREF = rdr[0].ToString();
                musteri.FirmaName = rdr[1].ToString();
                ViewBag.bakiye = rdr[3].ToString();
                musteri.TLF = rdr[2].ToString();
                musteri.Bakiye = rdr[3].ToString();
                if (rdr[4].ToString() == "1") { musteri.IHTAR = true; }
                else { musteri.IHTAR = false; }
                if (Convert.ToDouble(musteri.Bakiye) > 0)
                {
                    musteri.SIGN = "0";
                }
                else
                {
                    musteri.SIGN = "1";
                }
                items.Add(musteri);

            }
            con.connect().Close();
            return View(items);
        }
    }