调用Ajax返回500错误的解决方法

2019-11-26 15:01 来源:未知

  在SVG中,我们无法给Text元素设置Width和Height属性,因此无法直接获取Text元素的高和宽。如果想要给Text元素添加背景色,最简单的办法就是在Text元素的下面添加Rect,然后给Rect设置fill属性。如下面的代码:

看代码:

<rect id="dateRectObj_0" x="1133" y="605" rx="10" ry="10" width="120" height="23" fill="#B57A5A" display="block"/>
<text id="dateObj_0" x="1143" y="625" font-size="20" display="block">2014-09-11</text>
 1   public ActionResult UserLogin(LogOnModel model)
 2         {
 3             #region 验证码验证
 4             
 5             #endregion
 6 
 7            OperationResult result=   _identity.ValidateUser(model.UserName, EncryptAndDecrypte.EncryptString(model.Password));
 8 
 9 
10            if (result.ResultType==OperationResultType.Success)
11             {   //登陆成功
12                 SysUser user = (SysUser) result.Data;
13                 //Account account = new Account
14                 //{
15                 //    PersonName = user.UserName,
16                 //    Name = user.NickName,
17                 //    Id = user.Id
18                 //};
19                 _sysAuthenticationService.SignIn(user,false);
20                // Utils.WriteCookie("account",account,7);
21 
22                 result.Data = null;
23             }
24 
25             return Json(result);
26         }

  显示效果 图片 1

我就是ajax调用的这个类方法,从方法中看不出任何问题,我们看26行的,他是将一个对象序列化JavaScript的表示,在我的理解中,它应该会将result对象序列化为json对象的表示形式,

  但是如果Text元素的字体改变了,如何修改Rect元素的Width和Height属性的值呢?一个简单的办法是通过Text元素的getBBox()方法获取高和宽,代码如下:

这样在系统内部转换的时候就出现问题了,出现了循环引用的报错。所有我将result.Data 设置为空,解决问题。

var textElement = d3.select("#dateObj_0");
var bBox = textElement.getBBox();
d3.select("#dateRectObj_0").attr("width", bBox.width).attr("height", bBox.height);

所以最终的原因是出来SysUser这个类上,先Mark下。有时间在解决了、

  有关d3.js的使用可以查看官网. getBBox()方法返回指定元素的最小边界,

  不过在Firefox浏览器上,该方法偶尔会返回'NS_ERROR_FAILURE'的错误。原因是当目标元素的display属性被设置为'none'时,Firefox认为此时无法获取到元素的边界值(元素没有在浏览器中渲染,因此返回值没有任何意义)。不过经测试IE和Chrome浏览器能正常工作。解决的办法不外乎是在调用该方法前先判断目标元素的display属性是否为'none'。

 

TAG标签:
版权声明:本文由32450新蒲京网站发布于葡萄游戏厅_体育游戏,转载请注明出处:调用Ajax返回500错误的解决方法