簡體   English   中英

(ASP.NET JAVASCRIPT和C#)隱藏javascript調用C#方法的結果

[英](ASP.NET JAVASCRIPT and C#) Hide result of javascript calling C# method

我試圖隱藏從我的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向導為我指出了正確的方向)

在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!";
    }
var url = <%= "'" + magic() + "'"%>;

用戶想要查看所有要以javascript運行的內容。 您可以使它看起來不那么明顯,甚至可以進行加密,但是它仍然存在於瀏覽器中。

真正隱藏此內容的唯一方法是在所有服務器端執行此操作。

您將必須為此使用AJAX。

使用jQuery是一種選擇,通過它您可以將magic變成Page Method,然后使用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM