2016-03-24 9 views
0

Herkese günaydın,İstek.SorgulamaDizesi düğünle değerlerini almak

benim JS olan bazı değişkenlerle bir e-posta göndermek gereken bir sistem var. Kod, başlangıçta bana iyi görünüyor, ancak Request.QueryString bana hiçbir şey vermiyor. Request.Url.ToString() ile URL'den veri almaya çalışıyorum ve JS'nin gönderdiği tüm URL'leri gösteriyorum, bu JS'nin gönderdiği anlamına gelir, ancak Request.QueryString değerleri okuyamaz.

Lütfen birisi bana yardım edebilir mi? Aşağıda kodu gösteriyorum.

<script type="text/javascript"> 

var nomeCarinha; 

$(document).on("click", "[id*=lnkView]", function() { 
     $("#nome").html($(this).closest("tr").find("td.sDisplayName").text()); 
     $("#Product").html($(this).closest("tr").find(".Produto").text()); 
     $("#IP").html($(this).closest("tr").find("td.sNetworkAddress").text()); 
     $("#DC").html($(this).closest("tr").find("td.dc").text()); 
     $("#comentario").html($(this).closest("tr").find("td.sComment").text()); 
     $("#inicio").html($(this).closest("tr").find("td.inicio").text()); 
     $("#mensagem").html($(this).closest("tr").find(".mensagem").text()); 
     $("#monitor").html($(this).closest("tr").find("td.sMonitorTypeName").text()); 
     $("#dialog").dialog({ 
      width: 1000, 
      title: "Detalhes para TP", 
      buttons: { 

       Email: function (nome) { 
        var width = 150; 
        var height = 250; 
        var left = 99; 
        var top = 99; 
        var nome = $(this).find("#nome").text(); 
        var produto = $(this).find("#product").text(); 
        var ip = $(this).find("#IP").text(); 
        var dc = $(this).find("#DC").text(); 
        var comentario = $(this).find("#comentario").text(); 
        var inicio = $(this).find("#inicio").text(); 
        var mensagem = $(this).find("#mensagem").text(); 
        var monitor = $(this).find("#monitor").text(); 

        var janeleira = window.open("outlookPrimeiro.aspx?nomeDevice="+nome+"&nomeIp"+ip+"&nomeDc="+dc+"&nomeComentario="+comentario+"&nomeInicio="+inicio+"&nomeMonitor="+monitor, 'janela', 'width=' + width + ', height=' + height + ', top=' + top + ', left=' + left + ', scrollbars=yes, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no, setTimeout=1000'); 
       // Rescrever no outlookprimeiro.aspx para tirar os + no lugar de espaço da URL 
        }, 

       Ok: function() { 
        $(this).dialog('close'); 
       } 

      }, 
      modal: true 
     }); 

     return false; 
    }); 

    function blinker() { 
     $('.blink').fadeOut(500); 
     $('.blink').fadeIn(500); 
    } 

    setInterval(blinker, 1000); //Runs every second 

Ve alırsınız:

using System; 
using System.Text; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
//NECESSÁRIO PARA USAR MARSHALL 
using System.Runtime.InteropServices; 

//NECESSARIO PARA USAR O OUTLOOK 
using aqueleLance = Microsoft.Office.Interop.Outlook; 
using OutlookApp = Microsoft.Office.Interop.Outlook.Application; 
using testeUsingPrimeiro = Microsoft.Office.Interop.Outlook._AutoFormatRule; 
using testeUsingSegundo = Microsoft.Office.Interop.Outlook._AutoFormatRules; 
using testeUsingTerceiro = Microsoft.Office.Interop.Outlook.AutoFormatRule; 
using testeUsingQuarto = Microsoft.Office.Interop.Outlook.AutoFormatRules; 


public partial class outlookPrimeiro : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     String nomeDevice = Request.Url.ToString(); 
     //String nomeProduto = "TESTE"; 
     String nomeIp = Request.QueryString["ip"]; 
     String nomeDc = Request.QueryString["dc"]; 
     String nomeComentario = Request.QueryString["comentario"]; 
     String nomeInicio = Request.QueryString["inicio"]; 
     String nomeMonitor = Request.QueryString["monitor"]; 

    //DEFINICICOES DE DADOS DO E-MAIL A SER ENVIADO 
     String paraEmail = "[email protected]"; 
     String copiaEmail = "[email protected]"; 
     //String copiaOculta = ""; 
     String assuntoEmail = "Usando Outlook 2013 
     String corpo = "<html><body><div style='width:95%;text-align: center;background-color: black'><table style='width: 100%;text-align: center'><tr style='background-color:#5B2E90'><td style='color: white'>Prioridade</td><td style='color: white'>Acionamento</td><td style='color: white'>KBN</td><td style='color: white'>Device</td><td style='color: white'>IP</td><td style='color: white'>DC</td><td style='color: white'>WUG</td><td style='color: white'>Diretorio</td><td style='color: white'>Monitor</td><td style='color: white'>Comentario</td><td style='color: white'>Tempo Down</td><td style='color: white'>Inicio</td><td style='color: white'>TP</td></tr><tr><td style='color: orange'>Prioridade</td><td style='color: orange'>Acionamento</td><td style='color: orange'>KBN</td><td style='color: orange'>" + nomeDevice + "</td><td style='color: orange'>" + nomeIp + "</td><td style='color: orange'>" + nomeDc + "</td><td style='color: orange'>WUG</td><td style='color: orange'>Diretorio</td><td style='color: orange'>" + nomeMonitor + "</td><td style='color: orange'>COMENTARIO</td><td style='color: orange'>Tempo Down</td><td style='color: orange'>" + nomeInicio + "</td><td style='color: orange'>TP</td></tr></table></div></body></html>"; 

     //CRIA NOVO APP USANDO Microsoft.Office.Interop.Outlook.Application 
     OutlookApp appDoOutlook = new OutlookApp(); 

     //CRIA E-MAIL 
     aqueleLance.MailItem itemDoMail = appDoOutlook.CreateItem(aqueleLance.OlItemType.olMailItem) as aqueleLance.MailItem; 

     //QUAL CONTA VAI ENVIAR? NECESSÁRIO TER A CONTA NA MÁQUINA 
     string nomeDaConta = "[email protected]"; 

     //CRIA SESSÃO 
     aqueleLance.NameSpace sessao = itemDoMail.Session; 

     //PEGA CONTAS PRESENTES NA MÁQUINA 
     aqueleLance.Accounts contaAccounts = sessao.Accounts; 

     //FOR 1 ATÉ FINAL DO NÚMERO DE CONTAS 
     for (int i = 1; i <= contaAccounts.Count; i++) 
     { 
      //aqueleLance.Account contaAccount RECEBE O VALOR DO FOR 
      aqueleLance.Account contaAccount = contaAccounts[i]; 

      //SE A CONTA EXISTE, ELE VAI ENVIAR 
      //(COMPARAÇÃO FEITA EM LOWER CASE 
      if (contaAccount.DisplayName.ToLower() == nomeDaConta.ToLower()) 
      { 
       //COMANDO PARA ENVIAR USANDO A CONTA XXXXX 
       itemDoMail.SendUsingAccount = contaAccount; 

       //LIBERA VARIAVEL 
       Marshal.ReleaseComObject(contaAccount); 

       //PARA O COMANDO 
       break; 
      } 
     } 
     //PARA QUEM ENVIA O E-MAIL 
     itemDoMail.To = paraEmail; 

     //ENVIAR COM COPIA PARA 
     itemDoMail.CC = copiaEmail; 

     //COPIA OCULTA 
     //itemDoMail.BCC = copiaOculta; 

     //ASSUNTO DO EMAIL 
     itemDoMail.Subject = assuntoEmail; 

     //CORPO DO EMAIL EM HTML 
     itemDoMail.HTMLBody = corpo; 
     //"<html><body>Enviado pelo <strong>Outlook</strong> 2013<br/> Teste do envio com CC e BCC.<br/><br/></body></html>" 
     //IMPORTANCIA DO EMAIL 
     itemDoMail.Importance = aqueleLance.OlImportance.olImportanceHigh; 

     //ENVIA O EMAIL 
     //NÃO É POSSÍVEL VER ANTES DE ENVIAR SEM HABILITAR O DISPLAY ABAIXO 
     //itemDoMail.Send(); 

     //HABILITE ISSO PARA VER A MENSAGEM ANTES DE ENVIAR 
     //PRECISA TIRAR O SEND ACIMA 
     itemDoMail.Display(false);    

     //LIBERA CONTAS 
     Marshal.ReleaseComObject(contaAccounts); 

     //LIBERA SESSÃO 
     Marshal.ReleaseComObject(sessao); 
} 
} 

cevap

2

: Yani aynı zamanda bu okumalısınız

"nomeDevice="+nome+"&nomeIp="+ip+"&nomeDc="+dc+"&nomeComentario="+comentario+"&nomeInicio="+inicio+"&nomeMonitor="+monitor 

C# kodu:

String nomeIp = Request.QueryString["nomeIp"]; 
    String nomeDc = Request.QueryString["nomeDc"]; 
    String nomeComentario = Request.QueryString["nomeComentario"]; 
    String nomeInicio = Request.QueryString["nomeInicio"]; 
    String nomeMonitor = Request.QueryString["nomeMonitor"]; 

Ayrıca kesinlikle encodeURIComponent() kullanan JavaScript tarafında içeriği kaçmak gerektiğine dikkat, başka tür E kullanıcıların hala herhangi bir değeri göremez, .: örn ... istek örneği comentario bir & için sahip olarak başarısız

"outlookPrimeiro.aspx"+ 
"?nomeDevice="+encodeURIComponent(nome)+ 
"&nomeIp="+encodeURIComponent(ip)+ 
"&nomeDc="+encodeURIComponent(dc)+ 
"&nomeComentario="+encodeURIComponent(comentario)+ 
"&nomeInicio="+encodeURIComponent(inicio)+ 
"&nomeMonitor="+encodeURIComponent(monitor) 
+0

İŞİNİN BURADA GÜZEL! Teşekkürler kardeşim! –

0

deneyin değiştirmek için:

String nomeIp = Request.QueryString["ip"]; 

String nomeIp = Request.QueryString["nomeIp"] 
içinve benzeri ...

Ayrıca, küçük bir yazım hatası var. + "& nomeIp "+ ip + olmalıdır +" & nomeIp =" + ip + Sen değerleri için aynı tuşlarını kullanarak değiliz

+0

Hiçbir şey değişikliği yapabilirsiniz. –