繁体   English   中英

如何使用 AJAX 发布数据以更新我的 MVC 视图

[英]How can I post data using AJAX to update my MVC View

Hello everyone I'm currently working on a ASP.NET MVC environment using C#, so right now I'm getting a table from a URL using AJAX and using C# to render it inside my 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 同时将此变量提交给我的 Controller

我目前使用这个其他脚本将数据发送到我的 controller 但它从<input> 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>

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

<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 从视图传递到 controller 时,controller 都会拒绝您的请求,因为它不是安全内容。 所以您需要在您的操作中使用[ValidateInput(false)] ,如下所示。


public class YourController: Controller{

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM