【问题标题】:How can I post data using AJAX to update my MVC View如何使用 AJAX 发布数据以更新我的 MVC 视图
【发布时间】:2019-11-08 19:08:09
【问题描述】:

大家好,我目前正在使用 C# 在 ASP.NET MVC 环境中工作,所以现在我正在使用 AJAX 从 URL 获取表格并使用 C# 在我的 cshtml 中呈现它。

无论如何,现在我有一个问题,我找不到从按钮发布数据的方法,因为我主要使用 javascript 来执行此操作,我有点迷路了。

<script>
    $(document).ready(function(){

        // code to read selected table row cell data (values).
        $("#mydataTable").on('click','.btnSelect',function(){
             // get the current row
             var currentRow=$(this).closest("tr");

             // get current row 1st table cell TD value
             var col1=currentRow.find("td:eq(9)").html(); 

             var data=col1;

             alert(data);
        });
    });
</script>

现在这是我用来从我想从中获取数据的行中获取数据的脚本。

如何使用 AJAX 同时将此变量提交到我的控制器

我目前使用这个其他脚本将数据发送到我的控制器,但它从&lt;input&gt; name="" 中取出值,我需要获取的值来自我在我的 cshtml 中使用 c# 呈现的表

<script>
    function load() {
        $.ajax({
            url: '@myproject.Models.Base.RootDir()Controller/View',
            type: 'post',
            dataType: 'text',
            contentType: 'application/x-www-form-urlencoded',
            data: $("#myForms").serialize(),
            success: function (response) {
                $('#divToDisplayData').html(response);
            },
            error: function (error) {
                console.log(error);
            }
        });
    }
</script>

如果有人有问题,请提出,我会整天在附近

这是我用来提交数据的按钮

 <button class="btnSelect">Seleccionar</button>

【问题讨论】:

  • 你想发布什么?,你面临什么问题?。请描述得更清楚。正如我所看到的,您目前正在发布整个表格。
  • 如何添加从第一个脚本获取的数据 var col1=currentRow.find("td:eq(9)").html();触发按钮调用,同时将其绑定到带有我的 ajax 调用数据的提交帖子:,我该怎么做
  • 好的,所以当你的 ajax 调用正在执行时,你想用你的form 传递你的单元格值,对吧?
  • 是的,先生,实际上是的
  • 在 var data=col1 之后调用 ajax ?

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


【解决方案1】:

您可以在表单中传递数据,您只需在表单中获取一个隐藏字段,因此当您单击按钮时,设置该隐藏字段的值。

<form id="myForms">

     //your controlls

     //one extra hidden field
     <input type="hidden" id="cellValue" />

</form>

现在点击按钮,设置上面隐藏字段的值。

<script>
    $(document).ready(function(){

        // code to read selected table row cell data (values).
        $("#mydataTable").on('click','.btnSelect',function(){
             // get the current row
             var currentRow=$(this).closest("tr");

             // get current row 1st table cell TD value
             var col1=currentRow.find("td:eq(9)").html(); 

             var data=col1;

             $('#cellValue').val(data);
        });
    });
</script>

所以最后,当您的load() 方法调用时,您将在$("#myForms").serialize() 中获得隐藏字段控件中的单元格值。

在这里,您需要注意,每当您将 html 从视图传递到控制器时,控制器都会拒绝您的请求,因为它不是安全内容。所以您需要在您的操作中使用[ValidateInput(false)],如下所示。


public class YourController: Controller{

        [ValidateInput(false)]
        public ActionResult View()
        {
             return View();
        }
 }

【讨论】:

  • 感谢分享您的知识 Vishal :D 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 2021-03-09
  • 1970-01-01
相关资源
最近更新 更多