我需要创建一个应该能够从后面的代码中操作div内容的应用程序。但是我需要在不重新加载页面的情况下更新这个div。我使用的功能基于任务。我刚开始使用这项技术。这是我的代码:
public partial class _Default : System.Web.UI.Page
{
public static System.Web.UI.HtmlControls.HtmlGenericControl elem = null;
protected void Page_Load(object sender, EventArgs e)
{
elem = div1;
}
protected void Button1_Click(object sender, EventArgs e)
{
TaskClass c = new TaskClass ();
Task.Factory.StartNew(() => c.Execute());
}
}
class TaskClass
{
public async Task Execute()
{
_Default.elem.InnerHtml = "123";
}
}
<%@ Page Language="C#" AutoEventWireup="true" Async="true" CodeBehind="Page.aspx.cs" Inherits="Class1._Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form runat="server">
<div id="div1" style="border:1px solid; width:800px; height:200px;overflow:auto;" runat="server"></div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</form>
</body>
</html>
问题是div内容没有变化。如果我尝试添加一些内容而不使用任务,它可以工作。有没有办法在一个项目中使用aspx和任务?
答案 0 :(得分:0)
我担心你想要做的事情比你想象的要复杂得多。网络通过请求和响应进行操作。通常,页面和服务器之间没有持续的连接。发送响应后,您无法更改它,这就是您的代码不会更改任何内容的原因。有两种方法可以做你想做的事。