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) 有没有办法隐藏查询字符串,或者我们可以对其进行加密

  • 您可以将数据存储在会话变量中,也可以尝试将值存储在cookie中。

  • 最好使用TempData,它只允许使用一次值(第一次访问时删除)。但是,这意味着该值将几乎立即使用。

  • 加密查询字符串


  • 这不是很好的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");
    }