C# 在MVC操作中隐藏查询字符串
我想在控制器的操作中隐藏查询字符串 在我的应用程序场景中,如下所示: (一) 我已在新窗口中打开新操作,如下所示:C# 在MVC操作中隐藏查询字符串,c#,jquery,asp.net-mvc,asp.net-mvc-routing,query-string,C#,Jquery,Asp.net Mvc,Asp.net Mvc Routing,Query String,我想在控制器的操作中隐藏查询字符串 在我的应用程序场景中,如下所示: (一) 我已在新窗口中打开新操作,如下所示: var check="Particular String" var url = rootUrl("Home/Preview?Docs=" + check); window.open(url, '_blank'); 2) 在控制器方面,我在控制器的操作中使用了一些代码,如下所示: public ActionResult Preview(string Docs) {
var check="Particular String"
var url = rootUrl("Home/Preview?Docs=" + check);
window.open(url, '_blank');
2) 在控制器方面,我在控制器的操作中使用了一些代码,如下所示:
public ActionResult Preview(string Docs)
{
TempData["Docs"] = Docs;
return RedirectToAction("UnInvoicedPreview");
}
我的查询::1)当打开新窗口时,它在开始处显示查询字符串(当它不重定向到另一个操作时正常运行)
2) 我不想在URL中显示查询字符串
3) 有没有办法隐藏查询字符串,或者我们可以对其进行加密
这不是很好的MVC。MVC并不真正使用QueryString,除非在特殊情况下 MVC中建议的Url为“/Home/Preview/” 也就是说,如果您想隐藏参数,最好使用jQuery并向服务器发送帖子
var check="Particular String"
var data = "Docs=" + check;
$.post("/Home/Preview", data);
注意:如果查看页面的视图源,您仍然可以看到此值,但至少它不会显示在Url中。不,您根本无法隐藏查询字符串。 相反,有许多方法
1. <代码>会话[“键”]
2. <代码>可视包
3. <代码>$。在jquery中发布
四,
将您的页面或部分页面嵌入IFrame,这将完全隐藏查询字符串和URL。您可以尝试以下方法:
HttpServerUtility.UrlTokenEncode
和HttpServerUtility.UrlTokenDecode
要将字节数组转换为URL安全字符串我可以将值分配给会话变量@Session[“\u UninvoicedDocuments”]=check;它不工作&抛出异常。@RahulRJ,它在视图
或控制器
中抛出异常,同时将值提取到视图的Jquery中。我正在使用特定的代码,如::var check=“SomeString”@会话[“_unvoiceddocuments”]=检查@RahulRJ尝试设置如下@{Session[“\u uninovoiceddocuments”]=“check”}
@Nilesh它不工作。“check”是一个变量,而不是一个字符串,我在其中以串联字符串格式存储了机密ID,因此您的答案无效。为什么要加密或隐藏QueryString?@Erik Philips,因为它显示了发布到QueryString中的ID。出于安全目的,我不得不将其隐藏。您可能需要删除IFrame,因为它对安全性没有帮助。(根据新评论)您可能想删除帖子,因为出于安全目的,这不会有帮助。(根据新评论)
[HttpPost]
public ActionResult Preview(string Docs)
{
TempData["Docs"] = Docs;
return RedirectToAction("UnInvoicedPreview");
}