Tag: webforms

ASP.NET Control在CodeBehind中不可用

我在我的ABC.ASPX页面上拖放一个Label控件。它正确编译。 但是代码隐藏ABC.ASPX.cs中的控件( Label2 )不可用于值赋值。 分辨率是多少?

如何调用__doPostBack方法? 调用方法在哪里?

我使用了控件,在浏览器中渲染后控件没有分配click事件属性。 究竟是如何调用服务器端事件的呢? ASPX代码: 上面的控件在浏览器中呈现如下代码: 在浏览器中呈现以下代码,该代码设置__EVENTTARGET 。 我怀疑是如何调用__doPostBack方法的? 调用方法在哪里? function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } }

如何从查询字符串中删除项目以进行重定向?

在我的基页中,我需要从查询字符串中删除一个项目并重定向。 我不能用 Request.QueryString.Remove(“foo”) 因为该集合是只读的。 有没有办法获取查询字符串(除了那一项)而不迭代整个集合并重新构建它?

在浏览器中加载虚拟目录名时,会话在AcquireRequestState中为空,但在加载Default.aspx时不为null

我有一个ASP.NET 4.0 WebForms应用程序。 我需要访问HttpContext.Current.Session并在Global.asax中的AcquireRequestState事件(或它后面的事件)中设置一个值,我发现了一种奇特的行为。 假设我在IIS(我的案例中为版本7)中有一个名为Foo的虚拟目录。 在那里我有Default.aspx作为主页。 Global.asax文件示例如下: void Application_AcquireRequestState(object sender, EventArgs e) { HttpContext.Current.Session[“key”] = “value”; } 当我在浏览器中访问http://localhost/Foo/Default.aspx时,它运行正常。 当我访问http://localhost/Foo/我得到一个NullReferenceException ,我在会话中设置值。 唯一的变化是浏览器中的URL。 它们最终会访问同一页面,但框架的行为会有所不同,具体取决于URL是否只包含文件夹名称,还是包含aspx文件。 检查if (HttpContext.Current.Session != null)对我来说不是一个选项,因为我需要在会话中为每个请求设置一个值,这是不可协商的。 IIS中是否存在我缺少的配置设置,或者这是一个错误/被遗忘的function? 另一个问题的答案暗示IIS不会为每种请求加载会话,例如样式表不需要会话。 也许这种情况正在发生,因为IIS无法提前判断该文件夹名称是否会导致执行aspx文件或者是否会提供静态HTML文件? 更新:我甚至尝试重新排序IIS查找的默认文档,以便“default.aspx”位于列表的顶部,例如 Default.aspx的 Default.asp的 Default.htm的 … 我仍然遇到同样的问题。 更新: 事件处理程序只被触发一次,因为它导致NullReferenceException 。 我已经做了一些额外的阅读,我知道ASP.NET会为每个请求触发这些事件,即使对于CSS或JavaScript文件也是如此。 此外,没有为静态文件加载会话对象,因为没有访问会话的代码,因此无需加载对象。 即便如此,第一个请求是对网页的请求,该请求将需要会话,并且会话为空。 @DmytroShevchenko问: 首先添加一个保护检查if (HttpContext.Current.Session != null) ,这样就不会抛出NullReferenceException 。 然后尝试看一下,也许这个事件会被第二次发射,并且会话可用。 修改后的代码 void Application_AcquireRequestState(object sender, EventArgs e) […]

Quartz.net并不总是有效

我正在使用Quartz.net库的简单调度程序。 我有7种不同的触发器。 顺序是这样的。 第一:每120分钟一次。 第二:每12个小时。 第三:每5分钟一次。 第四:每3分钟一次。 第五:每29秒。 第六:每10秒。 第七:每5秒一次。 你看到它有点复杂。 我有这样的问题。 First Trigger需要每两个小时工作一次。 但经过几次运行后,它会自行停止。 它根本不起作用。 其他人都在工作,他们没事。 我很抱歉我的英语不好。 private int bultengetir = 120; // min private int baslayanmacsil = 29; //sec private int kuponsonuclandir = 5;//5 min private int canliorangetir = 10; //sec private int canlimacgetir = 7; //sec private int canlimacsil = 12;//hour private […]

Asp.net Url在回发时丢失了页面路径

背景:我们正在重做我们的网站并尝试对其进行现代化改造。 我们最初尝试使用AngularJS但由于我们的某些用户使用不受支持的浏览器而放弃了它。 我们最终只是做了VB webforms并更新了我们网站的设计和function。 我遇到了导致回发的按钮或项目的问题。 当页面尝试回发它命中路径但丢失主机名和最后一个“/”之间的所有内容 例如,我在/Secure/Account/Login.aspx位置设置了登录页面 我也有一个指向/安全/帐户/登录的路线。 因此,当您访问该页面时,请访问:www.website.com/Secure/Accounts/Login 当我点击登录按钮,而不是回发,我被导向:www.website.com/Login不存在所以我收到错误。 如果我导航到页面而不是使用路径,则会发生这种情况。 因此,如果我在www.website.com/Secure/Accounts/Login.aspx并单击按钮,我最终会在www.website.com/Login.aspx上显示错误。 只要它们不使用路由属性,这不会影响根目录中的页面。 我们有一些页面使用具有相同问题的路由属性。 我们在根目录中有页面/Category.aspx,并为页面配置了路由/类别/ {Attribute1} / {Attribute2} /。 如果我在页面www.website.com/Category/Attribute1/Attribute2上点击回发的按钮,我最终会在www.website.com/Attribute2上显示错误。

如何动态添加表行

我想在按钮单击时在表行中添加值。 它正在处理数据库但不在网页上工作。 它覆盖页面的最后一行。 如何在每次按钮点击时生成新行。 这是我的按钮点击代码 – protected void Page_Load(object sender, EventArgs e) { tblAdd.Visible = false; Label1.Visible = false; //Label2.Visible = false; } protected void btnSave_Click(object sender, EventArgs e) { int count = 1; if (Page.IsValid) { TableRow NewRow1 = new TableRow(); //1st cell TableCell NewCell1 = new TableCell(); //new checkbox CheckBox newCheckBox1 = new […]

没有在App_Data中创建.mdf

我正在研究Visual Studio Ultimate 2013中的C#ASP.NET Web Forms项目,同时遵循这个http://goo.gl/1hK73教程(但没有完成相同的项目)。 但是,我无法在App_Date中创建.mdf文件。 我创建了我的实体类,DbContext,用一个项目在我的表中播种,向Web.config添加了一个connectionString: ,并在Global.asax.cs Application_Start()方法中初始化数据库: Database.SetInitializer(new TestingSystemDatabaseInitializer()); 我查了一些类似的问题,但没有任何对我有用(我已经完成或只是没有工作)。 我在解决方案资源管理器中刷新了App_Data文件夹并使用了“显示所有文件”选项,但没有任何更改。 我的TestingSystemDatabaseInitializer: using System.Collections.Generic; using System.Data.Entity; namespace Student_Testing_System.Models { public class TestingSystemDatabaseInitializer : DropCreateDatabaseIfModelChanges { protected override void Seed(TestingSystemContext context) { var root = new Category() { CategoryId = 0, CategoryName = “root”, Description = “Default category”, ParentId = null, Parent = […]

异步(ajax)ASP.NET页面方法调用的请求生命周期是什么?

对Web窗体上的页面方法发出的异步请求的应用程序事件/处理时间表是什么? 寻找规范的答案或资源。 注意:这是有关ASP.NET AJAX如何处理对客户端脚本公开的Web服务的传入请求的信息请求,如 “ASP.NET网页中调用静态方法”一节中所述。 这不应与页面生命周期混淆。 还应该提到的是, [WebMethod]和[ScriptMethod]是ASP.NET AJAX的function,而不是XML Web Services,正如人们在阅读某些MSDN文档时可能会推断的那样,可以在此处和此处找到其示例。

MVC相当于Webforms“UrlAuthorizationModule.CheckUrlAccessForPrincipal”

所以我有这个控制器: namespace MyNamespace.Controllers { [Authorize(Roles=”Administrator”)] public class MyController : Controller public ActionResult Index() { … 如您所见,只有具有管理员角色的用户才能访问MyController的Action方法。 所以,从其他地方(另一个控制器,我的库类中的另一个类等) ,我如何检查Current.User.Identity.Name是否可以访问MyController? WebForms的“UrlAuthorizationModule.CheckUrlAccessForPrincipal”之类的东西。