我的网站是WPF项目。 我想从我的cs文件中传递一个字符串:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public string strHello = "Hello World!";
protected void Page_Load(object sender, EventArgs e)
{
}
}
到我的网站:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<script type="text/javascript">var jsstrHW = '<%=strHW%>'; alert("jsstrHW = " + jsstrHW);</script>
</head>
<body>
</body>
</html>
警报方法的输出:
jsstrHW = <%=strHW%>
请指导我如何正确行事。 非常感谢, Orian。
修改 我试过了:
ScriptManager.RegisterStartupScript(this, this.GetType(), "someID", "alert('This pops up');", true);
它并没有起作用。 我只将我的aspx文件和他的cs文件复制到其他文件夹,然后我关闭了我的解决方案并用这些文件创建了新的。一切都在Google Chrome上有效!所以..我的代码可能是正确的,但我的解决方案中的某些东西破坏了我的网站。它能是什么?正如我之前所说 - 我需要WPF应用程序的网站,而不是谷歌Chrome(或Mozilla Firefox等)。
再次感谢, Orian。
答案 0 :(得分:0)
您可以像这样访问JS中的c#变量
<script>
var jsstrHW = "<%=this.strHello %>";
alert("jsstrHW = "+jsstrHW);
</script>
这里strHello是cs页面上的变量名。
<强> 建议 强> 你可以使用RegisterClientScriptBlock
<强> 更新 强> 你可以试试这个
<script>
var jsstrHW = <%= "'" + strHello + "'"%>;
alert(jsstrHW);
</script>
答案 1 :(得分:0)
您可以使用 REGISTERCLIENTSCRIPTBLOCK 将值从C#传递给javascript。
C#代码:
ScriptManager.RegisterClientScriptBlock(Me.Page, Me.Page.GetType(), "someID",
"PassValue("+ strHW +");", True)
Javascript代码:
function PassValue(value)
{
alert(value)
}
答案 2 :(得分:0)
那么, 最终我找到了传递字符串的另一种方法:
this.WPFWindow.InvokeScript ("WriteFromExternal", new object [] {"this string is passed to WriteFromExternal"});
和JS:
function WriteFromExternal(message)
{
alert("Message from C#: " + message);
}
它有效:)
谢谢大家。