-
asp.net 实现 动态二级域名绑定 mvc方式实现 已亲测通过
利用 mvc中area实现 动态二级域名 实现效果: http://{area}.example.com
- 2013-06-17下载
- 积分:1
-
asp.net防刷新(F5) 禁止重复提交 实例(附完整源码)
实现了用户操作时 刷新导致的重复操作问题。 实现原理如下: 使用一个上下文唯一的票据号,该票据号随页面提交或回发而递增,每当用户与服务器端交互时,代码会提取上次的票据号码并与当前票据号码比较,如果当前票据大于上次的票据,则是提交或回发,否则则识别为刷新。 这种方式会用到HttpMoudel,并在其中操作Session。 使用方法如下: 1、引入dll MsdnExt 压缩包中有2.修改web.config,在 添加以下item: 其中“MsdnModule”是一个名字, “Msdn.RefreshModule”是“Msdn”下的“RefreshModule”类型,“MsdnExt”是程序集的名字 3.引入命名空间 using Msdn; 并修改页面类继承Msdn.Page 4.使用代码 代码: protected void Button1_Click(object sender, EventArgs e) { if (!IsPageRefresh) Response.Write("按钮事件"); else Response.Write("页面刷新");TrackRefreshState();} MSDNPage.cs 核心代码如下:using System;using System.Web.UI;using System.Web;using System.Text;namespace Msdn{ public class Page : System.Web.UI.Page { #region Constants // *********************************************************** // Constants public const string RefreshTicketCounter = "RefreshTicketCounter"; private const string SetFocusFunctionName = "__setFocus"; private const string SetFocusScriptName = "__inputFocusHandler"; // *********************************************************** #endregion // *********************************************************** // Ctor public Page() { m_focusedControl = ""; // Register a PreRender handler this.PreRender = new EventHandler(RefreshPage_PreRender); } // *********************************************************** // ************************************************************** // Indicates if the page is being viewed in response to F5 hit public bool IsPageRefresh { get { object o = HttpContext.Current.Items[RefreshAction.PageRefreshEntry]; if (o == null) return false; return (bool) o; } } // ************************************************************** // ************************************************************** // Increase the internal counter used to generate refresh tickets public void TrackRefreshState() { InitRefreshState(); int ticket = Convert.ToInt32(Session[RefreshTicketCounter]) 1; Session[RefreshTicketCounter] = ticket; } // ************************************************************** // ************************************************************** // Set the control with the input focus public void SetFocus(string ctlId) { m_focusedControl = ctlId; } // ************************************************************** #region Private Members // ************************************************************** // Create the hidden field to store the current request ticket private void SaveRefreshState() { int ticket = Convert.ToInt32(Session[RefreshTicketCounter]) 1; RegisterHiddenField(RefreshAction.CurrentRefreshTicketEntry, ticket.ToString()); } // ************************************************************** // ************************************************************** // Ensure that the ticket counter is initialized private void InitRefreshState() { if (Session[RefreshTicketCounter] == null) Session[RefreshTicketCounter] = 0; } // ************************************************************** // ************************************************************** // Handle the PreRender event private void RefreshPage_PreRender(object sender, EventArgs e) { SaveRefreshState(); AddSetFocusScript(); } // ************************************************************** // ************************************************************** // Add any script code required for the SetFocus feature private void AddSetFocusScript() { if (m_focusedControl == "") return; // Add the script to declare the function // (Only one form in ASP.NET pages) StringBuilder sb = new StringBuilder(""); sb.Append(""); sb.Append("function "); sb.Append(SetFocusFunctionName); sb.Append("(ctl) {"); sb.Append(" if (document.forms[0][ctl] != null)"); sb.Append(" {document.forms[0][ctl].focus();}"); sb.Append("}"); // Add the script to call the function sb.Append(SetFocusFunctionName); sb.Append("(); sb.Append(m_focusedControl); sb.Append();"); // Register the script (names are CASE-SENSITIVE) if (!IsStartupScriptRegistered(SetFocusScriptName)) RegisterStartupScript(SetFocusScriptName, sb.ToString()); } // ************************************************************** #endregion #region Private Properties // *********************************************************** // Private properties private string m_focusedControl; // *********************************************************** #endregion }}
- 2021-03-16 17:39:21下载
- 积分:1
-
NPOI 项目使用示例源码下载
NPOI 项目使用示例源码下载
- 2013-09-29下载
- 积分:1
-
halcon标定(基于HalconDotNet)
halcon标定(基于HalconDotNet)
- 2020-12-11下载
- 积分:1
-
线程操作数据查询,防止窗口卡死
线程操作数据查询,防止窗口卡死
- 2013-11-19下载
- 积分:1
-
C#8.0官方2020年中文教程.pdf(共2248页)
C#文档是一套C#入门使用手册,了解如何在 .NET 平台上使用 C# 编程语言编写任何应用程序。这里包含三个文档:C#8.0规范、C#8.0指南完整版、CSharp Language Specification 5.0 中文简体版,内含涵盖C#8.0新功能介绍、基础知识、入门教程、操作指南、编程指南、语言参考等,需要的朋友可下载试试!C#(读作“See Sharp”)是一种简洁、现代、面向对象且类型安全的编程语言。C# 起源于 C 语言家族,因此,对于 C、C 和 Java 程序员,可以很快熟悉这种新的语言。C# 已经分别由 ECMA International 和 ISO/IEC 组织接受并确立了标准,它们分别是 ECMA-334 标准和 ISO/IEC 23270 标准。Microsoft 用于 .NET Framework 的 C# 编译器就是根据这两个标准实现的。C# 8.0 向 C# 语言添加了以下功能和增强功能:Readonly 成员默认接口方法模式匹配增强功能:Switch 表达式属性模式元组模式位置模式Using 声明静态本地函数可处置的 ref 结构可为空引用类型异步流异步可释放索引和范围Null 合并赋值非托管构造类型嵌套表达式中的 Stackalloc内插逐字字符串的增强功能 .NET Core 3.x和.NET Standard 2.1支持 C# 8.0 。
- 2021-05-06下载
- 积分:1
-
bootstrap+MVC5+EF6 最新框架通用项目完整源码(XX,含数据库)下载
里面含有 上传图片、分页、add用户、日志记录 等例子
- 2014-10-16下载
- 积分:1
-
c#发送带附件的邮件 附源码
需要引用以下命名空间方可发送带附件的邮件 using System.Net;using System.Net.Mail;using System.Net.Mime
- 2013-04-23下载
- 积分:1
-
c# 常用基本方法
一些自己整理汇总的常用方法
- 2014-01-16下载
- 积分:1
-
winform 抽奖程序源码
winform 抽奖程序源码
- 2014-01-02下载
- 积分:1