jQuery和JavaScript可以像任何东西一样操纵DOM。但是如果C#必须向客户端发送一些东西,那么据我所知,我们只能在用户的Response对象中写一些东西。现在,这将在浏览器中写入文本,但我们无法控制它写入的位置。无论如何我们可以从C#控制,有点像:
“这是文本,我希望它是某些特定DIV的innerHTML”?
答案 0 :(得分:3)
你有两种方法可以做这样的事情。
runat="server"
,然后可以从后端访问它来操作ClientScriptManager.RegisterClientScriptBlock
注册JavaScript调用并以此方式操作div。但正如Chuck在他的评论中提到的那样 - 在ASP.NET中这是一件相当奇怪的事情。在大多数情况下,您使用Label,Literal等服务器控件来添加和操作页面上的文本,而不是直接修改本机DOM元素。
答案 1 :(得分:1)
这不是互联网如何运作的。当您的浏览器导航到网页时,它会向服务器发送请求。服务器响应一些东西。如果它试图显示整个网页,则需要返回整个页面的HTML。 C#正在为网络服务器提供动力。
当您浏览到另一个页面时,您不会修改现有页面;你得到了一个全新的页面。我们使用JavaScript来解决这个问题,让它向Web服务器发出调用并使用它返回的信息来修改页面上的HTML,因为它在客户端运行。
所以:不。
答案 2 :(得分:1)
您可以从后面的代码中设置div的内部html。只需将一个runat =“server”属性添加到div
即可<div id="divUserInfo" runat="server"></div>
并在您的代码中
string strHtml="<h3> User Name </h3><p>User description</p>";
divUserInfo.innerHtml=strHtml;
答案 3 :(得分:1)
这是在VB.NET中,但我确信C#有一个等价物。只需注入一些javascript来做你想做的事。
ClientScript.RegisterStartupScript(Me.GetType, "myScript",
String.Format("<script>document.getElementById('{0}').innerHTML = '{1}';</script>", elementID, html))
答案 4 :(得分:0)
答案 5 :(得分:0)
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Message.InnerHtml = Server.HtmlEncode("Welcome! You accessed this page at: " + DateTime.Now);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HtmlContainerControl Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<span id="Message" runat="server"></span>
</div>
</form>
</body>
</html>