ASP.NET jQuery ReferenceError:未定义系统



简单的东西:我想从aspx-page中调用c#函数。

我的C#函数(kalender.aspx.cs(:

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(:

        //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((中的jsonresult包括一个存储在SQL中的[事件]对象。所以我添加了一个ado.net实体数据模型:

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; }
}

如果模型可以工作&lt;%= getEvents((%>投掷正确的错误:"未定义模型"。

因此,错误"系统未定义"的意义是什么。我花了几个小时,找不到解决方案。请帮助,感谢您的任何回复。

(我一生中最糟糕的事情:昨天一切都很好,该死的var接受了jsonresult,我可以读出数据。早上我清理了代码。重命名了一些东西。从头开始,不知道怎么了。我很伤心。:((

编辑###

控制台输出:

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"}}}}

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

我添加到我的C#代码:

return new JavaScriptSerializer().Serialize(json.Data);

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

        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载算好。[var]将理解构造并自动铸造给JSON。

最新更新