私のasp.netmvcページで、次のようにレンダリングするリンクを作成します。
http://localhost:3035/Formula/OverView?colorId=349405&paintCode=744&name=BRILLANT%20SILVER&formulaId=570230
W3Cバリデーターによると、これは正しくなく、最初のアンパサンドの後にエラーが発生します。&がエンコードされておらず、エンティティ&pが認識されていないなどの不満があります。
&はキーと値のペアの区切り文字であるため、エンコードしないでください。
気になる人のために:私が知っているオプションのパラメータを渡す適切な方法がないため、これらのパーを「/」で区切られた値としてではなく、クエリ文字列として送信します。
すべてのビットをまとめるには:
- アンカー(<a>)タグのhref属性には、エンコードされた値が必要です
- &は&amp;にエンコードします
- パラメータの値の一部である場合に「&」をエンコードするには、%26を使用します
アンパサンドをエンコードしてパラメータの値の一部にしませんか?2番目の変数を最初の変数から分離するために必要です
実際、href値をエンコードすることで、エラーを取り除くことができます。ただし、今疑問に思っているのは、たとえば、私のcolorIdが "123&456"の場合、アンパサンドが値の一部である場合はどうするかです。セパレータはエンコードする必要があるため、エンコードされたアンパサンドをどうするか。いわば2回エンコードする必要がありますか?
したがって、URLを取得するには:
www.mySite.com/search?query=123&456&page=1
私のhref値はどうあるべきですか?
また、私はこれを気にする世界で最初の人だと思います。wwwをチェックして、W3Cバリデーターでクエリ文字列が検証されるページを数えます。