none
Equivalente do window.innerWidth; do javascript no ASP.NET MVC (C#) RRS feed

  • Pergunta

  • Olá,

    Tenho uma aplicação em que precisaria conhecer o tamanho da janela do browser, numa aplicação ASP.NET MVC  em nível de controller ou em nível de view. Consigo obter em nivel de view com uma função javascript que chamo no onload a função chama a

     window.innerWidth;  e obtém o valor. O problema é que não sei como mandar esse valor para o model ou para o controller ou para o ASP.NET MVC. Fiz uma tentativa de usar um HtmlHelper EditorFor,ligado a uma variável do model, e através do javascript (getElementById  jogava esse valor para o EditorFor, só que a variável ligada ao EditorFor não é atualizada. Também não consegui descobrir como chamar uma função javascript a partir do C# do ASP.NET MVC. Será que alguém poderia me ajudar.

    Antecipadamente já agradeço,

    Jairo

    segunda-feira, 6 de abril de 2015 03:16

Respostas

  • Bom dia,

    Você pode obter a informação que necessita como tem feito com javascript e enviar para o Controller por meio de uma chamada ajax assíncrona. O código de exemplo abaixo utiliza a biblioteca jquery, que eu acredito que você possa utilizar em seu projeto web e é a que eu costumo utilizar em meus projetos web.

    function enviarValorParaController(){
      var innerWidth = seuMetodoQueRecuperaWidth();
      $.ajax({
        url: 'caminho do seu controller', 
        data: {'innerWith': innerWidth},
        success: function() {
          //Não necessário, mas você pode incluir algum código para executar no retorno...
        }
      });
    }

    Espero ter ajudado.

    Sucesso,

    segunda-feira, 6 de abril de 2015 12:42

Todas as Respostas

  • Bom dia,

    Você pode obter a informação que necessita como tem feito com javascript e enviar para o Controller por meio de uma chamada ajax assíncrona. O código de exemplo abaixo utiliza a biblioteca jquery, que eu acredito que você possa utilizar em seu projeto web e é a que eu costumo utilizar em meus projetos web.

    function enviarValorParaController(){
      var innerWidth = seuMetodoQueRecuperaWidth();
      $.ajax({
        url: 'caminho do seu controller', 
        data: {'innerWith': innerWidth},
        success: function() {
          //Não necessário, mas você pode incluir algum código para executar no retorno...
        }
      });
    }

    Espero ter ajudado.

    Sucesso,

    segunda-feira, 6 de abril de 2015 12:42
  • Obrigado, 

    Vou tentar, pois tenho já um retorno para o controller, vou ver se consigo passar as duas coisas usando o princípio que você colocou.  

    Mais uma vez,

    Obrigado, 

    Jairo

    segunda-feira, 6 de abril de 2015 21:48