Javascript 打开新页面传递参数而不在URL上显示它们

Javascript 打开新页面传递参数而不在URL上显示它们,javascript,c#,asp.net-mvc,routes,Javascript,C#,Asp.net Mvc,Routes,我正在制作一个MVC#Web应用程序,我开始怀疑你是否可以打开其他需要参数才能运行的页面,而不通过URL发送它们,这是不安全的,可能会导致一些用户弄乱数据库的另一个注册表 但我的问题是,我从来没有做过这样的事情,我也找不到任何做过这样事情的代码示例。该项目使用C#和JS运行,我尝试过的主要内容包括: -使用Ajax执行此操作: 首先,我有一个按钮,用于调用函数: <a href="@Url.Action("actionEditStuff", "ControllerName")">Li

我正在制作一个MVC#Web应用程序,我开始怀疑你是否可以打开其他需要参数才能运行的页面,而不通过URL发送它们,这是不安全的,可能会导致一些用户弄乱数据库的另一个注册表

但我的问题是,我从来没有做过这样的事情,我也找不到任何做过这样事情的代码示例。该项目使用C#和JS运行,我尝试过的主要内容包括:

-使用Ajax执行此操作:

首先,我有一个按钮,用于调用函数:

<a href="@Url.Action("actionEditStuff", "ControllerName")">Link Text</a>|


function openHorario(id, id_schedule, id_tool) {
    alert(oid, id_schedule, id_tool);
    $.ajax({
        type: 'POST',
        url: '/Schedules/actionEditStuff',
        data: {
            id: id,
            id_schedule: id_schedule,
            id_tool: id_tool
        },
        async: 'false',
        success: function (data) {
            //???
        }
    });
}
|
函数openHorario(id、id\u计划、id\u工具){
警报(oid、id\U计划、id\U工具);
$.ajax({
键入:“POST”,
url:“/Schedules/actionEditStuff”,
数据:{
id:id,
id_计划:id_计划,
id_工具:id_工具
},
异步:“false”,
成功:功能(数据){
//???
}
});
}
我知道有一种方法可以让Ajax成功回归到新的页面,但是。。。这也要求您通过URL发送参数

显然,这不起作用,因为控制器中的操作是返回一个视图,而不是一个页面。所以我意识到我的想法不太明智,于是转向了其他地方:链接,但这些链接最终总是要通过URL发送可见的参数

是否有任何方法可以以适当、干净的方式完成这项工作


谢谢大家!

@Layan-为了说明我上面的评论,-您可以按照以下思路实现一些东西:

  • 客户端通过ajax进行调用

    ...
    var data = {
            id: id,
                id_schedule: id_schedule,
                id_tool: id_tool
            };
    $.ajax({
            url: '/Schedules/actionEditStuff',
            type: "POST",
            data: data,
            contentType: 'application/json; charset=utf-8',
            success: function (view) {
                    //load returned data into div? or popup?
            }
            , error: function (xhr, status, error) {
                    ...
            }
    });
    ...
    
  • 还有你的控制器动作

    public ActionResult actionEditStuff(....parameters...)
    {
            ...
            ...do your magic ...
            return PartialView("~/Views/_PartialViewThatShowsSomething.cshtml", ...pass model...);
    }
    

返回html或视图onsuccess()如何?您好!谢谢你的回复。问题是,它调用的页面已经生成,而不是我从头开始创建的。所以我只想更改一个链接到一个已经在运行的网站,通过URL发送参数,而只是以另一种方式发送。我甚至不确定你是否能做到。我曾经在一家SPA工作,使用Express.js、Vue.js和大量其他框架,这是可能的。。。但我不确定这是否可能,因为这是一个令人惊叹的框架。@Layan,-如果你需要打开另一个页面而不“显示”查询字符串,你可以向另一个页面发出带有所需参数的POST请求。您可以在ajax.onsuccess()回调中使用POST“重定向”