我在这里解释一个在开发过程中需要多次面对的案例。
假设有一个html表,其中包含带有编辑和删除选项的数据和列。
我使用内联javascript
方法编辑和删除每行的编辑和删除图标。
<a class="fa fa-pencil xxx" title="Edit" href="javascript:;" onclick="Edit(79);" style="padding:0 2px;"></a>
点击编辑图标将打开表格,用户可以更改/编辑值并保存。让我的Edit
函数是这样的。
function Edit(Id) {
window.location.href = "/FIID/edit?id="+Id;
}
我的问题是它会在Url中显示不被接受的ID。
我尝试了另一种解决方案。首先在ajax调用中,我在id
中设置Session
,然后重定向到编辑页面。
function Edit(cellvalue) {
$.ajax({
url: '/FIID/SetcurrentID',
data: { user: cellvalue },
datatype:"json",
success: function (data) {
window.location.href = "/FIID/edit";
}
});
}
内部SetcurrentID
操作方法我将ID存储在Session中,然后在编辑操作方法上使用此会话值,加载相应的用户进行编辑。因此,ID未显示在Url中。
我的问题是:
答案 0 :(得分:1)
无论是在html中设置还是在url查询字符串中设置,id都将始终可用。
如果您的业务要求不是识别您的ID,那么我建议您在将其发送到浏览器之前在服务器上对其进行加密。然后,当您编辑时,将其发回给您帖子上的服务器。请记住,它会被加密。然后,在服务器端,您可以解密该值并根据需要使用它。
一个选择是RSACryptoServiceProvider,但是甚至加密id你应该在服务器端对它们进行验证,以避免有人发送一个可能影响其他数据的ID,然后是你要更改的数据。