C#輸出JS代碼封裝類-Alart

來源:互聯網
上載者:User

C#後台輸出JS代碼我們通常是

Response.Write("<script>js代碼</script>");

這樣寫非常不方便,因此去年10月份的時候特意寫了一個封裝類,共用在CSDN上,博文地址為http://blog.csdn.net/wenjie315130552/article/details/6934777

code:

 1  /// <summary>
2 /// Alart 的摘要說明
3 /// </summary>
4 public class Alart
5 {
6 public enum AlartState
7 {
8 /// <summary>
9 /// 在根視窗中開啟該串連
10 /// </summary>
11 OpenInTopWindow,
12 /// <summary>
13 /// 在父視窗中開啟該串連
14 /// </summary>
15 OpenInParentWindow,
16 /// <summary>
17 /// 在當前視窗中開啟該串連
18 /// </summary>
19 OpenInThisWindow,
20 /// <summary>
21 /// 返回到上一個頁面
22 /// </summary>
23 Back,
24 /// <summary>
25 /// 關閉視窗
26 /// </summary>
27 CloseWindow,
28 /// <summary>
29 /// 不做任何操作
30 /// </summary>
31 Nothing
32 }
33
34 /// <summary>
35 /// 輸出JS提示資訊對話方塊
36 /// </summary>
37 /// <param name="context">頁面Context</param>HttpContext.Current
38 /// <param name="msg">訊息內容</param>
39 /// <param name="alartState">輸出模式*枚舉</param>
40 /// <param name="toUrl">提示後要轉到的URL</param>
41 public static void ShowAlart(HttpContext context, string msg, AlartState alartState,string toUrl)
42 {
43 StringBuilder mySB = new StringBuilder();
44 mySB.AppendFormat("<script language='javascript'>alert('{0}');", msg);
45 switch (alartState)
46 {
47 case AlartState.Back:
48 mySB.Append("history.go(-1)");
49 break;
50 case AlartState.CloseWindow:
51 mySB.Append("top.window.close()");
52 break;
53 case AlartState.OpenInParentWindow:
54 mySB.AppendFormat("parent.location='{0}'",toUrl);
55 break;
56 case AlartState.OpenInThisWindow:
57 mySB.AppendFormat("window.locaiton='{0}'", toUrl);
58 break;
59 case AlartState.OpenInTopWindow:
60 mySB.AppendFormat("top.location='{0}'", toUrl);
61 break;
62 case AlartState.Nothing:
63 break;
64 }
65 mySB.Append("</script>");
66 context.Response.Write(mySB);
67 context.Response.End();
68 }
69
70 /// <summary>
71 /// 輸出JS
72 /// </summary>
73 /// <param name="context">頁面Context</param>HttpContext.Current
74 /// <param name="jsStr">指令碼</param>
75 public static void UseJs(HttpContext context,string jsStr)
76 {
77 StringBuilder mySB = new StringBuilder();
78 mySB.AppendFormat("<script language='javascript'>{0}", jsStr);
79 mySB.Append("</script>");
80 context.Response.End();
81 }
82 }

 

調用:

樣式一(返回上一個頁面):

 

 Alart.ShowAlart(System.Web.HttpContext.Current, "密碼與確認密碼不一致", Alart.AlartState.Back, "");

樣式二(在本視窗開啟):

asp.net mvc:

Alart.ShowAlart(System.Web.HttpContext.Current, "操作成功", Alart.AlartState.OpenInThisWindow, Url.RouteUrl(new { controller = "ControllerName", action = "ActionName"}));

關於如何使用Url.RouteUrl(object routeValues)請參照wtq的博文使用Url.Routeurl擷取url值。

asp.net:

 Alart.ShowAlart(System.Web.HttpContext.Current, "操作成功", Alart.AlartState.OpenInThisWindow,"PageName"));

在asp.net中 盡量用 ClientScript.RegisterStartup() 或者 clientScript.RegisterBlock 類似的這樣方法,因為Response.Write()直接輸出在頁面上,會導致頁面變形。
 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.