Как я могу опубликовать данные с помощью AJAX для обновления моего MVC View - PullRequest
0 голосов
/ 08 ноября 2019

Привет всем. В настоящее время я работаю в среде ASP.NET MVC с использованием C #, поэтому сейчас я получаю таблицу из URL-адреса с помощью AJAX и использую 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, в мой контроллер

, который я сейчас используюэтот другой сценарий для отправки данных в мой контроллер, но он принимает значения из <input> name="", значение, которое мне нужно получить, из таблицы, которую я отображаю с использованием c # в моем cshtml

<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>

1 Ответ

1 голос
/ 11 ноября 2019

Вы можете передавать данные внутри формы, вам просто нужно взять одно скрытое поле внутри формы, поэтому, когда вы нажимаете кнопку, установите значение этого скрытого поля.

<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();
        }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...