7

次のように、Webアプリケーションのリンクをユーザーのメールに送信しています(ユーザー登録を確認するため):

<a target="_blank" href="http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==">
http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==
</a>

しかし、Chromeはこのメッセージを警告します:

クローム メッセージ

クエリ文字列が無効ですか? どうすれば解決できますか?

ところで:
私のアプリケーションは C# と MVC3 にあります

4

5 に答える 5

3

パラメータをURLエンコードする必要がありconfirmます。発生するエラーは、最後の==フラグメントが原因です。

このためには、HttpServerUtility.UrlEncodeまたは同様のフレームワークメソッドを使用します。

于 2012-06-26T11:31:18.060 に答える
1

=それ自体がパラメータ名をパラメータ値から分離するために使用されるため、おそらくパラメータ値をURLエンコードする必要があります。

于 2012-06-26T11:31:02.877 に答える
1

+2 つの文字を to_/toに置き換えることで、値を送信できます-

string confirm=confirm.Replace('+', '_').Replace('/', '+');

<a target="_blank" href="http://localhost:2817/ConfirmRegistration?confirm=@confirm">
http://localhost:2817/ConfirmRegistration?confirm=@confirm
</a>

以下を使用して、サーバー側でデータを取得できます。

if (Request.QueryString["confirm"] != null && Request.QueryString["confirm"].ToString() != "")
{
       string confirm = HttpUtility.HtmlDecode(Request.QueryString["confirm"]).Replace('_', '+').Replace('-', '/');
}
于 2015-04-14T07:32:44.160 に答える