【问题标题】:(ASP.NET JAVASCRIPT and C#) Hide result of javascript calling C# method(ASP.NET JAVASCRIPT 和 C#)隐藏 javascript 调用 C# 方法的结果
【发布时间】: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


【解决方案1】:

您必须为此使用 AJAX。

使用 jQuery 是一种选择,通过它您可以将 magic 转换为 Page Method 然后 consume it

【讨论】:

  • 这绝对是我想要的。我对 ASP.NET/javascript 很陌生,对 AJAX 或 jQuery 一无所知。你能帮我找到一个完整的小例子吗,因为我很难理解如何实现这样的东西。
  • This 答案包含完整的代码 - C#、HTML 和 JavaScript。你真的不需要更多的东西。如果您不明白那里的某些部分,请随时提问。 :)
【解决方案2】:

您想以 javascript 运行的所有内容都将对用户可见。你可以让它看起来不那么明显,甚至可以加密它,但它仍然存在于浏览器中。

真正隐藏这一点的唯一方法是在服务器端进行。

【讨论】:

    【解决方案3】:
    var url = <%= "'" + magic() + "'"%>;
    

    【讨论】:

    • 啊,我忘了这样做。感谢语法提示。
    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2011-10-28
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多