ASP.NET Webforms项目有一些默认页面("About"和"Contact"是特定的),它们具有以下类型的内容:
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="About.aspx.cs" Inherits="About" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: Title %>.</h2>
<h3>Your application description page.</h3>
<p>Use this area to provide additional information.</p>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
然而,当您选择添加> Web窗体时,它会创建:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DuckbilledPlatypus.aspx.cs" Inherits="DuckbilledPlatypus" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
为什么差异/不一致?注意:这是在Visual Studio 2013中; 我不肯定其他版本是相同的.
我正在使用Asp.Net Webforms应用程序.我使用Microsoft.AspNet.Identity进行身份验证.我想用用户的电子邮件地址作为用户名.但它不会让.你能帮我吗?
我的Web应用程序中有一个特定的页面(sitecore内容项),由sitecore布局和许多子布局组成.其中一个子布局是一个用户控件,我希望在单击某个按钮后刷新.我希望只刷新子布局,并保持页面的其余部分保持不变(这里典型的ajax情况).当我的所有sitecore内容项与我的Web应用程序中的整页(与子布局布局)直接相关时,如何使用sitecore完成此操作?在我的例子中,我想使用ajax仅返回特定的单个子布局的内容.使用sitecore这种ajax情况的最佳做法是什么?我正在使用sitecore 6.5.
我是.Net的新手.这可能是一个愚蠢的问题,但请耐心等待.我不知道出了什么问题,但服务器脚本中的'if'语句被绕过了.我使用网页表格.你能告诉我一个解决方案吗?
<%@ Page Language="C#" %>
<!DOCTYPE html>
<script runat="server">
protected void btnCalculate_Click(object sender, EventArgs e)
{
int price = 0;
int fee = Convert.ToInt32(ddlCourses.SelectedItem.Value);
price += fee;
if (rbMorning.Checked || rbAfternoon.Checked)
price -= fee * (10 / 100);
if (cbMaterial.Checked)
price += fee * (10 / 100);
lblMsg.Text = "Total Fee: " + price;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>CoursesApp 1.0</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>Courses Application</h3>
<br />
<asp:DropDownList ID="ddlCourses" runat="server">
<asp:ListItem Value="3000">Java SE</asp:ListItem>
<asp:ListItem Value="4500">Java …Run Code Online (Sandbox Code Playgroud) 继续我已经安排的代码,但仍然有相同的问题,无法在最后一页找到我的开始和结束时间?我该怎么做呢?
public void start()
{
DateTime startTime = DateTime.Now;
}
protected void btnStart_Click(object sender, EventArgs e)
{
start();
Response.Redirect("~/end.aspx");
}
Run Code Online (Sandbox Code Playgroud)
public void end()
{
DateTime endTime = DateTime.Now;
}
protected void btnEnd_Click(object sender, EventArgs e)
{
end();
Response.Redirect("~/display.aspx");
}
Run Code Online (Sandbox Code Playgroud)
public partial class display : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TimeSpan timeSpent = endTime - startTime;
lblDisplay.Text = string.Format("Time: {0}", timeSpent);
}
}
Run Code Online (Sandbox Code Playgroud)
现在有人可以帮我吗?
我想创建一些Web服务,但我决定使用WebAPI作为服务框架而不是WCF,所以我有一些问题:
我可以使用全功能的的WebAPI的ASP.NET Web窗体 4.5 没有任何问题?
WebForms 4.5与异步等待编程一起使用?
WebForms 4.5可以与HttpClient库和异步编程一起使用, 没有任何问题或限制吗?
有没有什么特别的限制,用的WebAPI的ASP.NET的WebForms 4.5?(反之亦然)
*如果有限制,我将被迫使用WCF :(
我正在尝试做我认为应该相对简单的事情,但我的UI不会马上更新.
我需要做的是当点击一个按钮时我需要更新一个标签,说明作业已经启动,启动该作业,然后在作业完成时更新标签.然而,UI总是阻塞,直到工作完成,所以我在等待工作完成时无法做任何事情.有关如何解决此问题的任何想法?
嘿,我的一些代码:
protected async void TurnOff_Click(object sender, EventArgs e) {
Label1.Text = "Started";
Label1.Text = await Task.Run<string>(() => SimulateData());
}
Private string SimulateData() {
Thread.Sleep(5000); //I have tried other methods that will do work for awhile and not freeze the thread as well (neither work)
return "finished";
}
Run Code Online (Sandbox Code Playgroud)
无论我如何运行它似乎总是阻止它直到作业完成然后它将让我用UI做事情.我需要它在作业启动后自动返回,然后在完成后更新UI.
我有一个简单的.net 4.5 webforms项目,我用它来输出一些服务检查的结果.我已经创建了一个多线程和等待的服务检查类(每次检查可能需要1-3秒,我希望它们并行检查).我希望每个服务检查的结果都写入网页并在确定后立即刷新(我不关心结果是否有序).服务检查程序方法已经过测试,在控制台应用程序中运行良好,但我无法将其移植到webforms应用程序.
下面的代码有点工作(非常随机).有时,它是完美的.其他时候,它会"跳过"显示其中一个测试的结果.其他时候,它将CSS样式的显示与结果混合在一起!但是,大多数情况下,它在CheckService中的Response.Flush行崩溃,说明"重叠的I/O操作正在进行中",然后崩溃.
如何在每次检查完成时编写网页响应缓冲区并以稳定的方式显示其结果?
这是aspx页面的代码......
<%@ Page Language="C#" Async="true" AutoEventWireup="true" Inherits="ServiceMonitor._Default" Codebehind="Default.aspx.cs" %>
Run Code Online (Sandbox Code Playgroud)
这是背后的代码......
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<style type=\"text/css\">body {font-family: Arial;font-size: 10pt;}</style>");
Response.Write("Beginning processing...<br/>");
Response.Flush();
RegisterAsyncTask(new PageAsyncTask(CheckServices));
}
protected async Task CheckServices()
{
Response.Write(string.Format("Starting checks at {0}<br/>", DateTime.Now.ToLongTimeString()));
var tasks = new List<Task<ServiceStatus>>
{
Task.Run(() => CheckService("ServiceOne")),
Task.Run(() => CheckService("ServiceTwo")),
Task.Run(() => CheckService("ServiceThree"))
};
var checkResults = (await Task.WhenAll(tasks)).ToList();
Response.Write(string.Format("Checking complete at {0}<br/>", DateTime.Now.ToLongTimeString()));
Response.Flush();
}
public ServiceStatus …Run Code Online (Sandbox Code Playgroud) 我有一个LINQ分组,我想用它来填充父和子转发器控件.
<asp:Repeater ID="Parent" runat="server" OnItemDataBound="Parent_ItemDataBound">
<ItemTemplate>
<%# Eval("Key") %>
<asp:Repeater ID="Child" runat="server">
<ItemTemplate>
<%# Eval("Id") %>
<%# Eval("Name") %>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
public class Dog
{
public int Id { get; set; }
public string Name { get; set; }
public string Breed { get; set; }
}
private IEnumerable<IGrouping<string, Dog>> GetDogs()
{
var dogs = new List<Dog>
{
new Dog
{
Id = 1,
Name = "Rex",
Breed = "Poodle",
},
new Dog
{
Id = 2,
Name …Run Code Online (Sandbox Code Playgroud) 我正在尝试在ASHX文件中设置会话变量。我读了一些,到此为止:
我收到一个错误消息,说“ System.Web.HttpContext.Current.Session”为空。就像我说过的那样,我已经读了一些书,并且看起来似乎应该起作用,但由于某种原因,我无法使它对我有用。
我使用System.Web.SessionState添加;在我的处理程序顶部,但这似乎没有任何用处。为此设置了Session变量(HttpContext.Current.Session [“ saml_session_id”]),但似乎没有持久化。当我进入aspx文件并从我的直接窗口调用HttpContext.Current.Session [“ saml_session_id”]时,仅返回NULL。
我已经以此为指导(如何访问.ashx文件中的Session?),但是显然缺少了一些东西。
谁能告诉我?我将继续研究,如果解决此问题,将发布解决方案。
请参阅下面的代码。
在我的.aspx文件中-我声明了会话变量:
HttpContext.Current.Session["saml_session_id"] = string.Empty;
Run Code Online (Sandbox Code Playgroud)
然后在同一个文件中,将其发布到ashx文件中:
var response = Post("http://" + Request.ServerVariables["HTTP_HOST"].ToString() + "/API/Login.ashx", new NameValueCollection() {
{"Username",Username},
{"Password",Password}
});
Run Code Online (Sandbox Code Playgroud)
然后在我的ashx文件中,我有以下内容(这是精简版本):
using System.Web.SessionState;
//Some validation happens and a string called session_id gets generated.
context.Session["saml_session_id"] = session_id;
//while I'm in the ashx file, context.Session["saml_session_id"] persists.
Run Code Online (Sandbox Code Playgroud)
当处理程序中的请求完成处理时,ASPX文件中的下一个代码是这样的:
if (Response.Status.ToString() == "200 OK") {
Context.Response.Redirect("../Play.aspx?SessionId=" + HttpContext.Current.Session["saml_session_id"].ToString());
}
Run Code Online (Sandbox Code Playgroud)
但是HttpContext.Current.Session [“ saml_session_id”]。ToString()现在再次为空。基本上看起来好像处理程序和Web表单未通信或会话未共享。我已检查以确保名称空间相同。我还有什么要检查的吗?