Передать данные из функции JavaScript в качестве параметра объекта в @ Html.Action () C # - PullRequest
0 голосов
/ 03 июля 2019

Вот что я пытаюсь сделать. Я хочу иметь возможность вызвать действие HTML и передать некоторые данные в качестве параметра объекта. Единственное, что эти данные должны быть возвращены из функции JavaScript.

Вот что я пытаюсь сделать:

@Html.Action("someAction", "someController", new { passedData = GetDropDownData() })

<script>
    function GetDropDownData() {
        var data = "test";
        return data;
    }
</script>

В основном я пытаюсь передать некоторые раскрывающиеся данные из элемента управления в частичное представление, отображаемое с помощью @ Html.Action (). Я хочу как-то передать эту строку в частичное представление, поэтому я решил, что могу использовать JS, чтобы получить выпадающие данные и вернуть их в качестве параметра объекта при рендеринге страницы?

Дайте мне знать, если у вас есть какие-либо предложения или лучший способ сделать это.

Спасибо!

1 Ответ

1 голос
/ 03 июля 2019

Это невозможно, так как вы это делаете, потому что бритвенные представления компилируются на стороне сервера, а javascript - на стороне клиента. Таким образом, представления уже скомпилированы, в то время как JavaScript выполняется во время выполнения. Один из способов сделать это - использовать ajax для передачи переменных из javascript в действие в контроллере в качестве параметров запроса или значений тела. Этого можно добиться, создав кнопку или ссылку:

<a href='#' id='clickMe'>Click me</a>

И подключение jQuery для выполнения работы:

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

   $('#clickMe').click(function(){

      $.ajax({
         type: "POST",
         url: '@Url.Action("Action", "Controller")',
         data: {
            passedData: GetDropDownData()
         },
         success: function(response){
             $('#placeholderForPartialView').html(response);
         }
      });
   });
});
</script>

Это будет выглядеть примерно так в зависимости от типа вашего метода (GET или POST). Здесь я предполагаю, что в результате вы возвращаете частичное представление и заменяете содержимое #placeholderForPartialView div на возвращенное представление. Пожалуйста, поправьте меня, если я ошибаюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...