エンコード/デコードに使用できるいくつかの簡単な方法を次に示します。エンコードされた値は安全ではなく、ご覧のとおり、デコードするのは簡単です。あなたの目標がIDを難読化することである場合、これはうまくいきます。セキュリティを確保する必要がある場合は、別のアプローチを取る必要があります。
public string Encode( string encodeMe )
{
byte[] encoded = System.Text.Encoding.UTF8.GetBytes( encodeMe );
return Convert.ToBase64String( encoded );
}
public static string Decode( string decodeMe )
{
byte[] encoded = Convert.FromBase64String( decodeMe );
return System.Text.Encoding.UTF8.GetString( encoded );
}
したがって、これらのメソッドをコントローラーに配置し、エンコードされた TechId を viewBag でビューに渡すことができます。
int techId = 1;
var encoded = Encode(id.ToString());
ViewBag.Encoded = encoded;
そして、あなたのリンクでそれを使用するには
@Html.ActionLink(techName, "Details","Home", new { TopicID = ViewBag.Encoded },null)
(ただし、実際にはビュー モデルの使用を検討する必要があります。ViewBag は、データをビューに渡すための便利で簡単な方法ですが、ベスト プラクティスとは見なされていません。ビュー モデルと厳密に型指定されたビューに慣れると、mvc ライフが大幅に向上します。言うまでもなく、あなたに従う人のために、よりクリーンで保守しやすいコードを作成してください。)