string locationName = "Mumbai";
Page.ClientScript.RegisterStartupScript(Type.GetType
("System.String"), "addScript", "PassValues(" + locationName + ")", true);
在javascript中我的代码包含
<script language="javascript" type="text/javascript">
function PassValues(locationName)
{
var txtValue = locationName;
alert(txtValue);
}
</script>
此处警报显示undefined而不是“Mumbai”
答案 0 :(得分:4)
尝试在后面的代码中将变量放在变量周围。如果没有它们,浏览器会认为您正在传递一个名为Mumbai的变量。你真正想要传递的是字符串'Mumbai'。您收到消息“未定义”,因为客户端代码中没有名为Mumbai的变量。
string locationName = "Mumbai";
Page.ClientScript.RegisterStartupScript(Type.GetType
("System.String"), "addScript", "PassValues('" + locationName + "')", true);
答案 1 :(得分:2)
这对我来说很完美:
<强> Default.aspx.cs 强>
using System;
using System.Web.UI;
namespace WebApplication2
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string locationName = "Mumbai";
Page.ClientScript.RegisterStartupScript(Type.GetType("System.String"), "addScript", "PassValues('" + locationName + "')", true);
}
}
}
Default.aspx (在创建用于测试的新Web应用程序时,从Visual Studio 2010自动生成为内容页面)
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script language="javascript" type="text/javascript">
function PassValues(locationName) {
var txtValue = locationName;
alert(txtValue);
}
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
Welcome to ASP.NET!
</h2>
</asp:Content>
答案 2 :(得分:1)
只是为了快速删除您的问题,您只需使用内联ASP.NET 即可快速运行您的应用程序:
<script language="javascript" type="text/javascript">
function PassValues(locationName)
{
var txtValue = locationName;
alert(txtValue);
}
PassValues('<%= locationName %>');
</script>
但问题是,您的代码在浏览器中呈现为:
PassValues(Mumbai);
这意味着JavaScript会尝试查找名为 Mumbai 的变量,并且由于找不到它,因此会显示 undefined 消息。因此,您应该将代码更正为:
"PassValues('" + locationName + "')"
答案 3 :(得分:1)
您需要引用参数
更改:
"PassValues(" + locationName + ")"
到
"PassValues('" + locationName + "')"
答案 4 :(得分:1)
您错过了在PassValues
javascript函数
string locationName = "Mumbai";
Page.ClientScript.RegisterStartupScript(Type.GetType
("System.String"), "addScript", "PassValues('" + locationName + "')", true);