FineUI 官方论坛

标题: JArray 问题,在Action的参数用了JArray就出错 [打印本页]

作者: 虫子    时间: 2018-3-13 15:39
标题: JArray 问题,在Action的参数用了JArray就出错
本帖最后由 虫子 于 2018-3-13 15:42 编辑

  1.         [HttpPost]
  2.         [ValidateAntiForgeryToken]
  3.         public ActionResult btnRoleSaveClose_Click(FormCollection values, JArray checkedNodes)
  4.         {
  5.             //JArray checkedNodes = new JArray();
  6.             try
  7.             {
  8.                 ShowNotify(JJ.Common.JsonHelper.ObjectToJSON(checkedNodes));
  9.             }
  10.             catch (Exception ex)
  11.             {
  12.                 ShowNotify(ex.Message);
  13.             }
  14.             
  15.             return UIHelper.Result();
  16.         }
复制代码

[attach]11058[/attach]
作者: 虫子    时间: 2018-3-13 19:51
问题解决,没有在Global里面加
  1. ModelBinders.Binders.Add(typeof(JArray), new JArrayModelBinder());
  2.             ModelBinders.Binders.Add(typeof(JObject), new JObjectModelBinder());
复制代码


但现在的问题是
JArray checkedNodes
收到的是长度总是0,包括Grid事件里面的fileds参数也是一样
作者: sanshi    时间: 2018-3-13 22:22
虫子 发表于 2018-3-13 19:51
问题解决,没有在Global里面加

调试,截图看下
作者: 虫子    时间: 2018-3-15 09:59
前端按钮事件
  1. .OnClick(Url.Action("btnRolePefSaveClose_Click"), "SimpleForm1", new Parameter("checkedNodes", "getCheckedNodes()"))
复制代码


getCheckedNodes:
  1. function getCheckedNodes() {
  2.             var result = [];

  3.             var checkedNodes = F.ui.tree_MenuList.getCheckedNodes(true);
  4.             if (checkedNodes.length) {
  5.                 $.each(checkedNodes, function (index, node) {
  6.                     result.push({
  7.                         id: node.id,
  8.                         text: node.text
  9.                     });
  10.                 });
  11.             }

  12.             return result;
  13.         }
复制代码


后端代码

  1. public ActionResult btnRolePefSaveClose_Click(FormCollection values, JArray checkedNodes)
  2.         {
  3. }
复制代码

后端代码无错,values内容正确,checkedNodes的长度为0,以前还是正确的

前端调试数据传递
[attach]11067[/attach]

作者: 虫子    时间: 2018-3-15 10:28
sanshi 发表于 2018-3-13 22:22
调试,截图看下

贴了代码了
作者: sanshi    时间: 2018-3-15 10:47
虫子 发表于 2018-3-15 09:59
前端按钮事件

getCheckedNodes:
  1. .OnClick(Url.Action("btnRolePefSaveClose_Click"), "SimpleForm1", new Parameter("checkedNodes", "getCheckedNodes()"))
复制代码
改为:
  1. .OnClick(Url.Action("btnRolePefSaveClose_Click"), "SimpleForm1", new Parameter("checkedNodes", "F.toJSON(getCheckedNodes())"))
复制代码
应该就好了。

这个是 FineUIMvc v4.1.0 中的一个不兼容改动,详情看更新记录:http://fineui.com/version_mvc/

[attach]11068[/attach]

作者: 虫子    时间: 2018-3-17 09:45
谢谢,好了,这个还真没注意 ,




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4