(ASP.NET JAVASCRIPT и C #) Скрыть результат JavaScript, вызывающий метод C # - PullRequest
0 голосов
/ 12 сентября 2011

Я пытаюсь скрыть результат метода C #, который вызывается из моего кода javascript в моем файле aspx. Когда я просматриваю исходный код страницы, я хочу вернуть значение, в настоящее время '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!";
    }

Ответы [ 3 ]

0 голосов
/ 12 сентября 2011

Все, что вы хотите запустить как javascript, будет доступно для просмотра пользователю. Вы можете сделать его менее очевидным, что он делает, или даже зашифровать его, но это все еще есть в браузере.

Единственный способ действительно скрыть это - сделать все это на стороне сервера.

0 голосов
/ 12 сентября 2011

Для этого вам придется использовать AJAX.

Использование jQuery - это одна из опций, при этом вы можете превратить magic в метод страницы, а затем потреблять .

0 голосов
/ 12 сентября 2011
var url = <%= "'" + magic() + "'"%>;
...