преобразование значения json, возвращаемого контроллером, в переменную в asp.net представление mvc

#jquery #asp.net-mvc #json #asp.net-mvc-3

#jquery #asp.net-mvc #json #asp.net-mvc-3

Вопрос:

Я разрабатываю приложение с использованием MVC / Jquery, я могу получить значение от контроллера для просмотра с помощью приведенного ниже кода getJSON,

  $.getJSON('@Url.Action("SampleData", "Home")', { pageNum: 1, pageSize: PageSize, accountDetailsType: AccountDetailsType }, function (result) {
            //total number of records
            totalRecords = result.total;
            //total records
            records = result.data;

            $('#Description').val(result.reportType); 
  

$('#Description') выдает мне нужные данные, которые я могу проверить с помощью текстового поля ниже в представлении,

 @Html.TextBox("Description")
  

теперь вопрос в том, есть ли какой-либо способ поместить это значение в любую переменную / скрытый файл, чтобы основываться на этом значении .. я могу показать / скрыть некоторый элемент управления в моем представлении…

похоже на,

 if(("Description") = "VB")
{
}
else
{

}
  

Комментарии:

1. Добро пожаловать в StackOverflow. Пожалуйста, используйте кнопку {}, чтобы отформатировать свой код в следующий раз. Я также добавил дополнительные соответствующие теги.

2. Вы хотите получить доступ к тем же данным, которые были возвращены из getJSON? вы уже делаете это, используя $(«#Description»). Почему вы хотите скопировать информацию в другую переменную / скрытое поле?

Ответ №1:

Я не вижу необходимости помещать результат в скрытое поле. Вы можете напрямую скрыть или показать затронутые элементы управления в функции обратного вызова вашего запроса Ajax:

 $.getJSON('@Url.Action("SampleData", "Home")',
    { pageNum: 1, pageSize: PageSize, accountDetailsType: AccountDetailsType },
    function (result) {
        //total number of records
        totalRecords = result.total;
        //total records
        records = result.data;

        if (result.reportType == "VB") {
          $('#control1').hide();
          $('#control2').show();
        } else {
          $('#control1').show();
          $('#control2').hide();
        }
    });
  

Комментарии:

1. 1 — дополнительный указатель, вы можете превратить эти 6 строк hide / show примерно в 2, используя .toggle вместо этого.

Ответ №2:

необходимо изменить следующую строку

 @Html.TextBox("Description")
  

Для

 @Html.Hidden("Description")
  

вы можете установить значение этого скрытого поля следующим образом

 $("#Description").val(result.reportType);
  

и считывает его как

 var somevar = $("#Description").val(); //assign to variable or make comparisons