asp.net-mvc-4 – 如何在mvc4 ActionLink中加密查询字符串ID
发布时间:2020-05-24 14:13:22 所属栏目:asp.Net 来源:互联网
导读:大家好我怎样才能在ActionLink中传递加密的id,这就是我在视图中所写的内容 @model IEnumerableforumAPP.tblTechnology@foreach (var item in Model){string techName=item.TechName;@Html.ActionLink(techName, Details,Home, new { To
|
大家好我怎样才能在ActionLink中传递加密的id,这就是我在视图中所写的内容 @model IEnumerable<forumAPP.tblTechnology>
@foreach (var item in Model)
{
string techName=item.TechName;
@Html.ActionLink(techName,"Details","Home",new { TopicID = item.TechID },null) // Here I would like to encrypt the TopicID
<br />
<br />
@Html.DisplayFor(modelItem => item.TechDesc)
}
解决方法以下是一些可用于编码/解码的简单方法.编码值不安全,正如您所看到的,解码它是微不足道的.如果你的目标是混淆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 );
}
因此,您可以将这些方法放在控制器中,并使用viewBag将编码的TechId传递给视图 int techId = 1; var encoded = Encode(id.ToString()); ViewBag.Encoded = encoded; 然后在链接中使用它 @Html.ActionLink(techName,new { TopicID = ViewBag.Encoded },null)
(尽管如此,你应该考虑使用一个视图模型.ViewBag虽然是一种将数据传递给视图的简单方便,但不被认为是最佳实践.对视图模型和强类型视图的熟悉将使你的mvc生活更加丰富将来更容易.更不用说,为那些关注你的人生成更清晰,更易于维护的代码.) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在Asp.Net MVC 2中有一种更好的方法来返回4
- 为什么调试器不会在我的ASP.NET应用程序的断点处停止?
- ASP.NET GridView SortedAscendingHeaderStyle不起作用
- asp.net-mvc – 只读一个下拉列表,但仍然提交其值
- asp.net-mvc – ASP.Net MVC2自定义模板通过Ajax和模型更新
- ASP.NET – 将网站投入生产的基本清单
- 决定Umbraco和Orchard之间ASP.NET CMS
- asp.net-mvc-4 – ASP.Net Web Api在POST上不绑定模型
- asp.net-mvc – 文件上传MVC
- asp.net-mvc – 如何在发布MVC应用程序时包含自定义文件夹?
