首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET Jquery ReferenceError:未定义系统

ASP.NET Jquery ReferenceError:未定义系统
EN

Stack Overflow用户
提问于 2018-04-02 18:30:38
回答 1查看 241关注 0票数 0

简单的事情:我想从aspx-Page调用aspx.cs中的一个C#函数。

我的C#函数(Kalender.aspx.cs):

代码语言:javascript
复制
protected JsonResult GetEvents()
    {
        //DATABASE READOUT
        using (DatabaseEntities dc = new DatabaseEntities())
        {
            var events = dc.Events.ToList();
            JsonResult json = new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            return json;
        }
    }

我的JS调用(Kalender.aspx):

代码语言:javascript
复制
        //DATABASE READOUT
        var json

        try { //DIRECT CALL
            var data = <%= GetEvents()%>;  //<<-- throw ReferenceError: System is not defined
            alert('DIRECT CALL: ' + typeof (data) + ' | ' + data[0]);
            json = JSON.parse(data);
        } catch (error) {
            alert(error + "\r" + error.name + "\r" + error.message);
        }

来自GetEvents()事件包括存储在SQL中的JsonResult对象。因此,我添加了一个ADO.NET实体数据模型:

代码语言:javascript
复制
public partial class Events
{
    public int EventID { get; set; }
    public string Subject { get; set; }
    public string Description { get; set; }
    public System.DateTime Start { get; set; }
    public Nullable<System.DateTime> End { get; set; }
    public string Color { get; set; }
    public bool IsFullDay { get; set; }
}

如果模型不起作用,<%= GetEvents()%>抛出正确的错误:“模型未定义”。

那么,错误“系统未定义”的意义何在?我花了一小时又一小时,找不到解决方案。请帮助我们,感谢您的回复。

(我生命中最糟糕的事情是:昨天一切正常,该死的var接受了JsonResult,我就可以读出数据了。第二天早上,我会清理代码。重命名一些东西。世界末日。什么都不能用了,我从头开始,不知道哪里出了问题。我很难过。:( )

编辑###

控制台输出:

代码语言:javascript
复制
Application Insights Telemetry (unconfigured): {"name":"Microsoft.ApplicationInsights.Dev.RemoteDependency","time":"2018-04-02T11:49:50.7556362Z","tags":{"ai.internal.nodeName":"LAPTOP-81CNBL6C","ai.operation.parentId":"Y67fpD/L2MI=","ai.operation.name":"GET /Pages/Kalender","ai.operation.id":"Y67fpD/L2MI=","ai.location.ip":"::1","ai.cloud.roleInstance":"LAPTOP-81CNBL6C","ai.internal.sdkVersion":"rddf:2.2.0-738"},"data":{"baseType":"RemoteDependencyData","baseData":{"ver":2,"name":"(LocalDB)\\MSSQLLocalDB | C:\\USERS\\MARTIN\\DOCUMENTS\\VISUAL STUDIO 2017\\PROJECTS\\HOMEOFFICE\\HOMEOFFICE\\APP_DATA\\DATABASE.MDF","id":"zYD3G9N1sOI=","duration":"00:00:00.0110000","resultCode":"0","success":true,"type":"SQL","target":"(LocalDB)\\MSSQLLocalDB | C:\\USERS\\MARTIN\\DOCUMENTS\\VISUAL STUDIO 2017\\PROJECTS\\HOMEOFFICE\\HOMEOFFICE\\APP_DATA\\DATABASE.MDF","properties":{"DeveloperMode":"true"}}}}
Application Insights Telemetry (unconfigured): {"name":"Microsoft.ApplicationInsights.Dev.Request","time":"2018-04-02T11:49:48.6739718Z","tags":{"ai.operation.name":"GET /Pages/Kalender","ai.operation.id":"Y67fpD/L2MI=","ai.location.ip":"::1","ai.cloud.roleInstance":"LAPTOP-81CNBL6C","ai.internal.sdkVersion":"web:2.2.0-738"},"data":{"baseType":"RequestData","baseData":{"ver":2,"id":"Y67fpD/L2MI=","name":"GET /Pages/Kalender","duration":"00:00:02.3570000","success":true,"responseCode":"200","url":"http://localhost:56879/Pages/Kalender","properties":{"DeveloperMode":"true"}}}}
EN

回答 1

Stack Overflow用户

发布于 2018-04-03 19:05:23

几个小时之后,我找到了一个简单的解决方案。

我在我的C#代码中添加:

代码语言:javascript
复制
return new JavaScriptSerializer().Serialize(json.Data);

并接受我的函数返回字符串而不是JsonResult:

代码语言:javascript
复制
        protected string GetEvents()
    {
        //DATABASE READOUT
        using (DatabaseEntities dc = new DatabaseEntities())
        {
            var events = dc.Events.ToList();
            JsonResult json = new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            return new JavaScriptSerializer().Serialize(json.Data);
        }
    }

JavaScript handel说得很好。var将理解形成并自动转换为json。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49609566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档