日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

怎樣解決asp.net URL傳值出現(xiàn)錯(cuò)誤的問題_.Net教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:解讀asp.net常用正則表達(dá)式
一、字段 表達(dá)式 格式示例 說明 數(shù)字^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$(425)-555-0123425-555-01234255550123驗(yàn)證美國(guó)電話號(hào)碼。 名稱[a-zA-Z’`-\s]{1,40}JohnDoeO’Dell驗(yàn)證名稱。最多允許使用40個(gè)大寫字母和小寫字母,以及一些在名稱中常用的特殊字符

    最近在asp.net編程中發(fā)現(xiàn)一個(gè)問題,如果用URL從一個(gè)頁(yè)面傳遞字符串到另一個(gè)頁(yè)面,會(huì)出現(xiàn)傳遞的字符串比如是“DK51+700中繼站”;可是另一個(gè)頁(yè)面接收到字符串卻是:“DK51 700中繼口”;加號(hào)變成了空格,“站”不能解析出來,變成了不能識(shí)別的符號(hào)“口”的情況。 
    經(jīng)網(wǎng)上查詢發(fā)現(xiàn)原因主要是,URL中有些字符被轉(zhuǎn)義,象空格被編碼成加號(hào),于是傳的參數(shù)明明是加號(hào),獲取的值卻成了空格。如果按照網(wǎng)上的建議,應(yīng)該對(duì)要傳遞的參數(shù)進(jìn)行編碼處理。于是,我對(duì)傳遞的參數(shù)進(jìn)行了處理,但是又衍生了一堆問題出來;我當(dāng)時(shí)為了節(jié)約時(shí)間,就沒有仔細(xì)研究,用了字符串中的Replace()方法在傳送前代替了這兩個(gè)字符,接收到了再代替回來�,F(xiàn)在我來具體的展示下這個(gè)問題。
  1.首先,我們先看下我的開始的問題(環(huán)境:VS2008):
  1.1. 新建一個(gè)網(wǎng)站,在其中添加一個(gè)頁(yè)面,一個(gè)頁(yè)面是Defaul.aspx,另一個(gè)網(wǎng)頁(yè)Defaul2.aspx,在第一個(gè)頁(yè)面中添加一個(gè)控件:HyperLink1; 
  后臺(tái)代碼: 

public partial class _Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string url;
    string name;
    url = "Default2.aspx?Name=";
    name = "DK51+700中繼站";
    HyperLink1.NavigateUrl = url + name;
  }
}

  1.2. 在第二個(gè)頁(yè)面中添加一個(gè)Label控件Label1;
  后臺(tái)代碼:
public partial class Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string name = Request.QueryString["Name"];
    Label1.Text = name;
  }
}

      1.3. 結(jié)果顯示:“DK51 700中繼口”。
public partial class _Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string url;
    string name;
    url = "Default2.aspx?Name=";
    name = "DK51+700中繼站";
    name = name.Replace("+", "@");
    name = name.Replace("站", "%");
    HyperLink1.NavigateUrl = url + name;
  }
}
 

  2.我當(dāng)時(shí)的解決方法:用了字符串中的Replace()方法在傳送前代替了這兩個(gè)字符,接收到了再代替回來。
  2.1第一個(gè)頁(yè)面的后臺(tái)代碼:

public partial class _Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string url;
    string name;
    url = "Default2.aspx?Name=";
    name = "DK51+700中繼站";
    name = name.Replace("+", "@");
    name = name.Replace("站", "%");
    HyperLink1.NavigateUrl = url + name;
  }
}

       2.2.第二個(gè)頁(yè)面中,后臺(tái)代碼:
public partial class Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
{
  string name = Request.QueryString["Name"];
    name = name.Replace("@", "+");
    name = name.Replace("%", "站");
    Label1.Text = name;
  }
}

   2.3.結(jié)果是:“DK51+700中繼站”。正確!
  后來我在網(wǎng)上找到這個(gè)這樣的設(shè)置,在Web.config中設(shè)置:
<system.web>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
</system.web>

分享:.net編程中常見錯(cuò)誤詳解
1:command調(diào)用存儲(chǔ)過程的時(shí)候,如果輸出是dataset,selectcommand的command對(duì)象的connection先要指出,否則catch一輩子也是空的.. 2:存儲(chǔ)過程的varchar字段如果是x.x的這種格式,容易出現(xiàn)細(xì)微的傻錯(cuò)誤,注意不要漏了[]. 3:如果ascx文件的默認(rèn)服務(wù)器控件的事件不重

共2頁(yè)上一頁(yè)12下一頁(yè)
來源:模板無(wú)憂//所屬分類:.Net教程/更新時(shí)間:2010-06-02
相關(guān).Net教程