0

Asp.net、Jquery、および Ajax を使用して、現在のページの html をキャプチャして電子メールで送信したり、保存したりする方法はありますか。動的に生成された量の入力を含むページがあり、かなりの数があります。私がやりたいことは、フォームに入力した後にフォームの完全な html をキャプチャしてメールで送信することです。これを行う方法はありますか。私は Web サービスを持っていて、それは ajax 経由でデータを渡していますが、大なり記号と小なり記号や引用符などの処理に問題があります。ポイントは、彼らが画面に入力する内容の読みやすいコピーを用意することです。HTML メールは、顧客が望んでいる方法です。ありがとう!

これはコードビハインドに直接含まれている可能性もありますが、クライアントがポストバックしないサーバー側でその方法を見つけることができません。

firebug で受け取るエラーは、「メッセージ」:「無効なオブジェクトが渡されました。\u0027:\u0027 または \u0027}\u0027 が必要です。

4

1 に答える 1

0

大なり小なり記号や引用符などの処理に問題があります。

この問題を解決するには、HttpUtility.HtmlDecodeを試してください。

残りについては、これを試してください(source):

private void SaveWebPage_as_HTML()
{
    // Initialize the WebRequest.
    string urlToConvert = (System.Web.HttpContext.Current.Request.Url).ToStr ing();
    WebRequest myRequest = WebRequest.Create(urlToConvert);
    // Return the response. 
    WebResponse myResponse = myRequest.GetResponse();

    // Obtain a 'Stream' object associated with the response object.
    Stream ReceiveStream = myResponse.GetResponseStream();
    Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

    // Pipe the stream to a higher level stream reader with the required encoding format. 
    StreamReader readStream = new StreamReader(ReceiveStream, encode, true, 255);

    // Read 256 charcters at a time. 
    Char[] read = new Char[256];
    int count = readStream.Read(read, 0, 256);
    using (StreamWriter sw = new StreamWriter("output.html"))
    {
        while (count > 0)
        {
        // Dump the 256 characters on a string and display the string onto the console.
        String str = new String(read, 0, count);
        sw.Write(str);
        count = readStream.Read(read, 0, 256);
        }
    }

    // Close the response to free resources.
    myResponse.Close();
}

使用されるエンコーディング (ここでは utf-8) には細心の注意を払ってください。「読みやすさ」の問題が発生する可能性があります。

于 2013-10-09T08:10:07.910 に答える