当 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 写入数字字段,因为它应该:
对我来说,管理员中的列表视图似乎隐藏了这些值:
难道就这样了?
我使用 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 写入数字字段,因为它应该:
对我来说,管理员中的列表视图似乎隐藏了这些值:
难道就这样了?