【问题标题】:Strange anamoly in ASP.NET Web Forms (code not working with no errors ...)ASP.NET Web 窗体中的奇怪异常(代码无法正常工作...)
【发布时间】:2017-08-01 07:32:36
【问题描述】:

我在 C#(ASP.NET Web 窗体)中遇到了一个奇怪的异常。

我有一个 ascx 网页,我在其中调用一个从 localStorage 值创建 JSON 的函数。

function creerJsonDepuisLocalStorage() {
        var modif = {}

        // Filling modif with localStorage values ...         

        try {
            return JSON.stringify(modifs);
        } catch (e) {
            console.log(e);
            return "";
        }

    }

点击提交按钮时调用我的代码隐藏并恢复 JSON 以使用它。

protected void btnEnregistrerFiche_OnClick(object sender, EventArgs e)
{
    // tons of code ... doing various things like !!DataBase access!!

    string argument = Request.Form["__EVENTARGUMENT"]; 
    JavaScriptSerializer ser = new JavaScriptSerializer();
    try
    {
        FicheModifiee edits = ser.Deserialize<FicheModifiee>(argument);
        // edits treatments, commented for debug
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.Message);
    }

    // some other code like !!UI update!!
}

我的问题如下:

当我的前端 javascript 函数返回一个空字符串时,代码隐藏函数就像一个魅力,进行数据库修改和更新 UI。

当我的前端 javascript 函数返回一个真实对象时,代码隐藏函数正确地将 JSON 反序列化到编辑类中,并且我没有任何错误或崩溃 没有进行数据库访问并且 UI 正在使用以前的数据进行更新(不考虑在提交之前所做的任何更改)。

这听起来像是黑魔法,因为我没有遇到任何崩溃,而且我的一小段代码没有对函数的其余部分做任何事情......

感谢您的帮助。

【问题讨论】:

  • 您是否附加了调试器并单步执行代码?
  • 是的,我做了,但其余的代码不是我的,而是调用了很多其他函数。现在我可以说我的块之前和之后的每个函数都没有崩溃并返回正确的值。
  • @Jasone.L 你在你的对象中得到的数据是什么
  • @Webruster 一个在 javascript 中创建的简单数据对象,主要包含字符串和一些 DateTimes。

标签: javascript c# asp.net webforms


【解决方案1】:

我设法通过使用 asp:hiddentField(在我的 json 创建脚本末尾设置)并直接从 C# 代码中读取它来解决我的问题。仍然不知道Request.Form["__EVENTARGUMENT"]; 发生了什么

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多