js eval()执行传参函数的写法

.cs

复制代码
 public class Message<T>
    {
        // 数据总数
        public int? Total { get; set; }

        // 关键数据
        public List<T> Rows { get; set; }


        // 信息状态
        // 0:失败,1:成功, 2:其它
        public int? Status { get; set; }

        // 返回信息
        public string Msg { get; set; }

        //js前台执行方法
        public string JsExecuteMethod { get; set; }

        public override string ToString()
        {
            return "Total:" + this.Total +
                   ",Rows:" + this.Rows +
                   ",Status:" + this.Status +
                   ",Msg:" + this.Msg;
        }
    }
复制代码

.ashx.cs

复制代码
public string QueryWarnInfoByZhuanId(HttpContext context)
        {
            string ret = null;
            var message = new Message<WarnRec>();
            var warnrecbll = new WarnRecBll();
            var id = context.Request.Params["zhuanid"];
            if (string.IsNullOrEmpty(id))
            {
                return ret;
            }
            var zhuanid = int.Parse(id);
            try
            {
                var dt = warnrecbll.FindBy(zhuanid);
                var list = ConvertHelper<WarnRec>.ConvertToList(dt);
                message.Rows = list;
                message.Status = 1;
                message.Msg = "返回成功";
                message.JsExecuteMethod = "respose";
                ret = _jss.Serialize(message);
            }
            catch (Exception)
            {
                message.Status = 0;
                message.Msg = "返回失败";
                Log.Error(message.ToString());
            }
            return ret;
        }
复制代码

.js

复制代码
/**
* *ajax成功时返回resultObject是json数据
**/
function serviceSuccess(resultObject) {
    if (resultObject==null) { 
        return true;
    }
    switch (resultObject.Status) {
        case 0:
        case 2:
            parent.messager("提示", resultObject.Msg);
            break;
        case 1:
            eval(resultObject.JsExecuteMethod +"(resultObject)");
            break;
        default:
    }
}
复制代码
复制代码
/**
*  ajax成功返回时
*  显示告警信息data到页面
**/
function respose(data) {
    var resHtml = "";
    for (var i = data.Rows.length - 1; i >= 0; i--) {
        resHtml += "<li>" +
                            data.Rows[i].LogType + "&nbsp;&nbsp;" +
                            eval("new " + data.Rows[i].Occurdt.split('/')[1]).Format("yyyy-MM-dd HH:mm:ss") + "&nbsp;&nbsp;" +
                            data.Rows[i].LogDesc + "&nbsp;&nbsp;" +
                  "</li>";
    }
        $("#response").html(resHtml);
}
复制代码

 

posted @   Seaurl  阅读(3354)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示