精华内容
下载资源
问答
  • 2017-01-22 21:52:36

    今天遇到一个问题 纠结了半天  终于解决了。
    其实说这问题 真的很小。。。就是一个跳转问题。
    mvc 自带有两中跳转方式 
    1、return  RedirectToAction()
    2、return Redirect(URL())
    两种。。
    可是我偏偏都跳转不了 。。
    我有点转牛角尖。。其实我直接异步回调跳转 也ok 
    但是非想这样做。。。
    好吧。。
    debug  
    最后发现原来是异步惹的祸
    mvc 不支持异步跳转 。
    只支持submit()提交  跳转。
    改成submit  提交就OK  了


    更多相关内容
  • C#网页跳转方法总结

    2020-12-26 09:58:22
    一、目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect(http://www.baidu.com,false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。 跳转向新的...
  • ①response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!...
  • 在两个ASP.NET页面之间传递值
  • .net C#页面之间传值传参的几种方法 1.QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于...

    .net C#中页面之间传值传参的几种方法

    1.QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:

    复制代码

    private void Button1_Click(object sender, System.EventArgs e)
     {
         string s_url;
         s_url = "b.aspx?name=" + Label1.Text;
         Response.Redirect(s_url);
     }
    b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
     {
         Label2.Text = Request.QueryString["name"];
     }

    复制代码

    query传值又分类post ,get格式如:

    复制代码

    //post请求 
    string name = Request["name"].toString(); 
    string name =Request.Form.Get("name").toString(); 
    //get请求 
    string name = Request.QueryString["name"].toString(); 
    但我发现 无论是否是post与get传值都可用
    string name = Request["name"].toString();

    复制代码

    表单提交中get和post方式的区别归纳如下几点: 
    1. get是从服务器上获取数据,post是向服务器传送数据。 
    2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 
    3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。 
    4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 
    5. get安全性非常低,post安全性较高。

     

    2.  使用Application 对象变量

      Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。

    复制代码

    a.aspx的C#代码
    private void Button1_Click(object sender, System.EventArgs e)
     {
         Application["name"] = Label1.Text;
         Server.Transfer("b.aspx");
     }
    b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
     {
         string name;
         Application.Lock();
         name = Application["name"].ToString();
         Application.UnLock();
     }

    复制代码

    3.  使用Session变量

      想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。

    复制代码

    a.aspx的C#代码
    private void Button1_Click(object sender, System.EventArgs e)
     {
         Session["name"] = Label.Text;
     }
    b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
     {
         string name;
         name = Session["name"].ToString();
     }

    复制代码

    4.  使用Cookie对象变量

      这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

    复制代码

    a.aspx的C#代码
    private void Button1_Click(object sender, System.EventArgs e)
     {
         HttpCookie cookie_name = new HttpCookie("name");
         cookie_name.Value = Label1.Text;
         Reponse.AppendCookie(cookie_name);
         Server.Transfer("b.aspx");
     }
    b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
     {
         string name;
         name = Request.Cookie["name"].Value.ToString();
     }

    复制代码

    5.  使用Server.Transfer方法

      这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。

    复制代码

    a.aspx的C#代码
    public string Name
     {
         get{ return Label1.Text;}
     }
     private void Button1_Click(object sender, System.EventArgs e)
     {
         Server.Transfer("b.aspx");
     }
    b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
     {
         a newWeb;   //实例a窗体
         newWeb = (source)Context.Handler;
         string name;
         name = newWeb.Name;
     }

    复制代码

     

    下面介绍一下传值缺点和优点

    cookie
         方式:将数据存在客户端的经典方法。
         缺点:安全性低、受客户端设置限制、一个站点仅存20个cookie,每个容量4096字节。

    Session
         方式:将用户数据存储在服务端。
         特点:asp.net中可以设置session的存储方式、位置、SessionID的保存是否依赖cookie。
                 可以直接存储对象。 
         缺点:asp.net中有失效的隐患
    Cache
         方式:将用户数据存储在服务端数据缓存中。 
         特点:可以大大提高效率。 可以直接存储对象。
    Appliction
         方式: 将数据存储于此,相当于全局变量。 
         特点:可以直接存储对象。整个站点的共享数据
    ViewState
         方式:asp.net特有机制,用来恢复页面状态。 
         特点:将页面各控件及其所存数据序列化存在name为_ViewState的隐藏域中。
         缺点:存在HTML中,安全性较低。可以设置加密和验证,但数据量会大增、效率有影响。
    Static
         方式: 将数据存于静态变量中。 
         特点:利于提高效率。
         缺点:若用不好会致使用户或页面间数据紊乱,造成极大的隐患。建议只赋值一次,绝对禁止为单个用户而更改此值。

    展开全文
  • C#跳转网页9种方法

    千次阅读 2018-08-10 17:50:15
    一、目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页...

    一、目前在ASP.NET中页面传值共有这么几种方式:

    1.Response.Redirect("http://www.hao123.com",false); 
    目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。
    跳转向新的页面,原窗口被代替。
    浏览器中的URL为新路径。
    Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。

    2.Server.Transfer("Default2.aspx?name=zhangsan",true);
    目标页面和原页面可以在同一个服务器上。
    跳转向新的页面,原窗口被代替。
    浏览器中的URL为原路径不变。
    默认情况下,Server.Transfer方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成True,就可以保留第一个页面的表单数据和查询字符串。同时,使用Server.Transfer时应注意一点:目标页面将使用原始页面创建的应答流,这导致ASP.Net的机器验证检查(Machine Authentication Check,MAC)认为新页面的ViewState已被篡改。因此,如果要保留原始页面的表单数据和查询字符串集合,必须把目标页面Page指令的EnableViewStateMac属性设置成False。

    3.Server.Execute("Default5.aspx?address=beijing);
    目标页面和原页面可以在同一个服务器上。
    跳转向新的页面,再跳转会原页面。
    浏览器中的URL为原路径不变。
    当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。
    这种页面导航方式类似于针对ASPX页面的一次函数调用,被调用的页面能够访问发出调用页面的表单数据和查询字符串集合,所以要把被调用页面Page指令的EnableViewStateMac属性设置成False。

    4.Response.Write("<script language='JavaScript'>window.open('aaa.aspx');</script>");
    目标页面和原页面可以在2个服务器上,可输入网址或相对路径。
    原窗口保留,另外新增一个新页面。


    5.Response.Write("<script language='javascript'>window.location='Default2.aspx'</script>");
    打开新的页面,原窗口被代替。

    6.Response.Write("<script>window.showModalDialog('Default2.aspx')</script>");

    7.Response.Write("<script>window.showModelessDialog('Default2.aspx')</script>");
    (一)、showModalDialog和showModelessDialog有什么不同?
    showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。
    showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)
    (二)、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
    在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的。

     

     

     

    同时新打开两个页面

     <input type="button" value="button" οnclick="window.open('1.aspx');window.open('2.aspx');" />

     

     

    二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第 7 种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:

      以查询数据页面为例:

       在查询页面中设置如下公有属性(QueryPage.aspx):

        public class QueryPage : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.TextBox txtStaDate;
    protected System.Web.UI.WebControls.TextBox txtEndDate;
       ...
    /// <summary>
    /// 开始时间
    /// </summary>
    public string StaDate
    {
    get{ return this.txtStaDate.Text;}
    set{this.txtStaDate.Text = value;}
    }
    /// <summary>
    /// 结束时间
    /// </summary>
    public string EndDate
    {
    get{ return this.txtEndDate.Text;}
    set{this.txtEndDate.Text = value;}
    }
    ....
    private void btnEnter_Click(object sender, System.EventArgs e)
    {
    Server.Transfer("ResultPage.aspx");
    }
    }

       在显示查询结果页面(ResultPage.aspx):

        public class ResultPage : System.Web.UI.Page
    {
       private void Page_Load(object sender, System.EventArgs e)
       {
    //转换一下即可获得前一页面中输入的数据
    QueryPage queryPage = ( QueryPage )Context.Handler;
    Response.Write( "StaDate:" );
    Response.Write( queryPage.StaDate );
    Response.Write( "<br/>EndDate:" );
    Response.Write( queryPage.EndDate );
      }
    }

    三、如果有许多查询页面共用一个结果页面的设置方法:

        在这种方式中关键在于“ QueryPage queryPage = ( QueryPage )Context.Handler; ”的转换,只有转换不依赖于特定的页面时即可实现。

    如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!

    1、先定义一个类,用该类放置所有查询参数:

    /// <summary>
    /// 结果页面中要用到的值
    /// </summary>
    public class QueryParams
    {
    private string staDate;
    private string endDate;
    /// <summary>
    /// 开始时间
    /// </summary>
    public string StaDate
    {
    get{ return this.staDate;}
    set{this.staDate = value;}
    }
    /// <summary>
    /// 结束时间
    /// </summary>
    public string EndDate
    {
    get{ return this.endDate;}
    set{this.endDate = value;}
    }
    }

    2、接口定义:

    /// <summary>
    /// 定义查询接口。
    /// </summary>
    public interface IQueryParams
    {
    /// <summary>
    /// 参数
    /// </summary>
    QueryParams Parameters{get;}
    }

    3、查询页面继承IQueryParams接口(QueryPage.aspx):

    /// <summary>
    ///查询页面,继承接口
    /// </summary>
    public class QueryPage : System.Web.UI.Page, IQueryParams
    {
    protected System.Web.UI.WebControls.TextBox txtStaDate;
    protected System.Web.UI.WebControls.TextBox txtEndDate;
    private QueryParams queryParams;
       ...
    /// <summary>
    /// 结果页面用到的参数
    /// </summary>
       public QueryParams Parameters
    {
    get
    {
    return queryParams;
    }
    }
    ....
    private void btnEnter_Click(object sender, System.EventArgs e)
    {
    //赋值
    queryParams = new QueryParams();
    queryParams.StaDate = this.txtStaDate.Text;
    queryParams.EndDate = this.txtEndDate.Text
    Server.Transfer("ResultPage.aspx");
    }
    }

    4、别外的页面也如此设置

    5、接收页面(ResultPage.aspx):

    public class ResultPage : System.Web.UI.Page
    {
       private void Page_Load(object sender, System.EventArgs e)
       {
    QueryParams queryParams = new QueryParams();
    IQueryParams queryInterface;
    //实现该接口的页面
    if( Context.Handler is IQueryParams)
    {
    queryInterface = ( IQueryParams )Context.Handler;
    queryParams = queryInterface.Parameters;
    }
    Response.Write( "StaDate:" );
    Response.Write( queryParams.StaDate );
    Response.Write( "<br/>EndDate:" );
    Response.Write( queryParams.EndDate );
      }
    }

    展开全文
  • C#页面跳转

    千次阅读 2020-07-30 16:57:58
    前面几天处理不够齐全,登录成功后登录页还在隐藏,第二次点击登录就会提示程序已经在运行登录页在后台隐藏,网上... //实现页面跳转 Form1 form3 = new Form1(); this.Hide(); //隐藏当前窗体 form3.ShowDialog();

    前面几天处理不够齐全,登录成功后登录页还在隐藏,第二次点击登录就会提示程序已经在运行登录页在后台隐藏,网上刚查询处理一下解决了此问题,记录一下,初学C#,大牛绕道。

                        //实现页面跳转
                        Form1 form3 = new Form1();
                        this.Hide();     //隐藏当前窗体   
                        form3.ShowDialog();
                        Application.ExitThread();   //退出当前窗体,这一步很重要,否则最后可能无法将所有进程关闭。最好是在跳转页面后,将之前的页面退出。

     

    展开全文
  • C#页面跳转的集中方式都列出来,根据具体情况运用
  • 一、目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect(“http://www.hao123.com”,false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。 跳转向新...
  • 跳转方法有两种,第一种是修改配置文件,第二中是在Global.assx中添加Application_Error处理方法。 方法一步骤:(Application_Error) 一、先关闭自定义错误,将Web.config配置文件中customErrors节点的mode设置为...
  • C# web简单的带参数跳转
  • C# 窗口跳转

    2021-09-04 12:22:57
    源码 //扫描 private void button6_Click(object sender, EventArgs e) { //跳转 insert f1 = new insert(); f1.ShowDialog(); }
  • int id =10; int code=1026; string name = "head"; Response.Redirect("<script>alert('确认成功');location.href='jieshou.aspx?id="+ id+"&code="+code+"&name="+name+" '</script>");...页面跳转
  • C#中的四个跳转语句

    2021-11-23 15:55:50
    C#中的四个跳转语句       C#提供了很多可以立即跳转到程序中另一行代码的语句,此外,先介绍goto语句。 1.goto语句      goto语句可以直接跳转到程序中用标签制定的另一...
  • C#窗体跳转

    千次阅读 2020-12-31 21:58:52
    C#中的WindowsFormsApp窗体应用,从一个窗口跳转到另一个窗口(名字是 form2),点击控件跳转,需要在控件里面写入代码 Form2 f = new Form2(); this.Hide(); f.ShowDialog(); this.Show();
  • WPF 登录菜单页面跳转

    2019-10-12 17:28:56
    根据背景图片等比放置控件,然后通过消息订阅和发布的方式进行页面跳转。登录界面的输入框显示水印的提示信息,输入值后水印提示消息消失,并且在登录页面的ViewModel中绑定界面中输入的密码的值,每个不同的菜单...
  • C#编程基础——跳转语句

    千次阅读 2020-06-27 10:03:22
    C#中有4中跳转语句:continue,break,return,goto语句。 continue语句 语法格式: continue; continue语句只能用于循环语句中。在循环语句中当continue执行之后,就立刻测试循环条件,以决定循环是否继续下去...
  • C#中的页面跳转

    2013-07-09 16:41:04
    基于C#的编程,C#中的页面跳转,实现省市联动
  • 1.最常用的页面跳转(原窗口被替代):Response.Redirect("XXX.aspx"); 2.利用url地址打开本地网页或互联网:Respose.Write("<script language='javascript'>window.open('"+ url+"');</script>"); 3....
  • C# 跳转 重定向

    千次阅读 2019-03-27 09:02:40
    1、C# 如何使用 HttpWebRequest 重定向 https://jingyan.baidu.com/article/90895e0f09e9c164ec6b0b31.html 2、解决错误:基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。 ... ......
  • C#中常用的页面跳转并传值的5中方法实例文档,包含:Request.QueryString、Seesion、Application、Cookie、Server.Transfer等5中页面传值方法,具体内容,我不介绍,需自己研究。
  • 1.最常用的页面跳转(原窗口被替代):Response.Redirect("XXX.aspx"); 2.利用url地址打开本地网页或互联网:Respose.Write("<script language='javascript'>window.open('"+ url+"');</script>"); 3....
  • 在控制器中引用此类名,就能做到对整个控制器或者某个方法根据权限的过滤,
  • C#跳转语句

    2019-07-27 10:12:41
    C#中有四种跳转语句。 ◎break语句:直接退出整个循环。 ◎continue语句:立即终止本次循环,但不会继续执行下一次循环。 ◎goto语句:跳出循环到已标记好的位置上。 ◎return语句:退出循环和循环所在的函数 ...
  • C#在winform中页面跳转实现

    千次阅读 2019-09-09 10:40:39
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...大作业做管理系统时要实现登录功能,就像QQ登录一样,登录后登录界面自动关闭,原本以为实现没什么难的,谁知坑了我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,665
精华内容 9,866
关键字:

c#页面跳转

c# 订阅