当 JS var 的值为 0(零)时,控制器 API 将其替换为空字段 (2sxc - DNN)

When a JS var has the value 0 (zero), controller API replaces it with empty field (2sxc - DNN)

我使用 2sxc (DNN) 通过此 js 将一些表单数据传递到实体中:

sxc(@Dnn.Module.ModuleID).webApi.post("Controller/Create", {}, { 
        qtitle: "@Content.title",
        date: $todaydate,
        user: "@Dnn.User.Username",
        q1sel: $q1res,
        q1val: $q1val
        }

还有这个控制器:

[HttpPost]
    [DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Admin)]
    [ValidateAntiForgeryToken]
    public bool Create(dynamic postController)
    {
        var quizvals = new Dictionary<string, object>();

        quizvals.Add("qtitle", postController.qtitle.ToString());
        quizvals.Add("date", postController.date.ToString());
        quizvals.Add("user", postController.user.ToString());
        quizvals.Add("q1sel", postController.q1sel.ToString());

        App.Data.Create("Quiz10q5o_entries", quizvals, "Anonymous");

        return true;
    }

我尝试了很多数据类型,它们都工作正常,有或没有 ToString,但是当任何 $vars 有 0(零,JS 数字)时,传递的字段为空到实体行.

谁能帮我理解为什么会这样?这里需要某种类型的转换吗?

此致, 若昂·戈麦斯

我的猜测是您正在写入一个数字字段,并使用一个字符串。尝试将其转换为 Int32 或类似类型,我相信你应该可以开始了。

我检查了你的工作,看起来没有任何问题。它似乎也将 0 写入数字字段,因为它应该:

对我来说,管理员中的列表视图似乎隐藏了这些值:

难道就这样了?