【发布时间】:2011-09-12 11:47:06
【问题描述】:
我试图在我的 aspx 文件中隐藏从我的 javascript 代码调用的 C# 方法的结果。当我查看页面源时,我想返回值,目前是 'HI_MOM!',使其不可见。
我的 ASPX:
<html>
<head>
<title>Hide Me</title>
</head>
<body><div id="center"><div id="fig">
<script type="text/javascript">
var url = <%="'"+magic()+"'"%>;
document.write(url);
</script>
</div></div></body>
</html>
我的 C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class TestTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public string magic()
{
return "HI_MOM!";
}
}
运行后的源码:
<html>
<head>
<title>Hide Me</title>
</head>
<body><div id="center"><div id="fig">
<script type="text/javascript">
var url = HI_MOM!;
document.write(url.toString);
</script>
</div></div></body>
</html>
基本上,我想让它在我查看页面的源代码时出现“var url = HI_MOM!;”行对用户不可见或以某种方式被屏蔽。
编辑:
回答:(感谢@Shadow Wizard 为我指明了正确的方向)
在 TestTest.aspx 中:
<script type="text/javascript" src="./jquery.js"></script>
。 . .
jQuery.ajax({
type: 'POST',
url: 'TestTest.aspx/magic',
cache: false,
data: '{}',
contentType: 'application/json; charset=utf-8',
dataType: 'text',
success: function (msg) {
var result = eval('(' + msg + ')');
result = eval('('+result["d"]+')');
//do something with your string =]
}
});
在 TestTest.aspx.cs 中:
[WebMethod]
public static string magic()
{
return "HI_MOM!";
}
【问题讨论】:
-
你不能从你的 aspx 中删除该行吗?
-
如果它不可见,你将如何使用它?这样做的目的是什么?
-
这会给你一个 JavaScript 错误,因为
HI_MOM没有定义(它不是一个定义的变量,甚至没有string)。您想从您的 CS 方法返回'HI_MOM!'。但除此之外,如果您不希望用户看到它,则根本不应该将其作为 javascript 传递。 -
@Inuyasha 如果我这样做了,我就不会收到我需要的数据......
标签: c# javascript asp.net return hidden