Kendo UI TreeListDataSource Read()仅在本地运行时有效

时间:2015-04-22 18:56:22

标签: c# .net kendo-ui kendo-grid kendo-asp.net-mvc

我有一个Kendo TreeList,其数据源定义为

foreach($db in $dbs) {

    if ($db.Name.EndsWith("_test")) {
      Write - Host "Checking database:"
      $db.Name - BackgroundColor "Yellow" - ForegroundColor "Black"
      $dbname = $db.Name# database check
      $db.CheckTables('None')

我的控制器的读取方法是:

    var ds = new kendo.data.TreeListDataSource({
                    transport: {
                        read: {
                            url: "/Home/Read/",
                            type: "POST",
                            dataType: "json"
                        }},
                     schema:...
                     }

只要我通过VS本地运行,一切都很有效但是一旦我部署到我们的登台服务器,Read()传输代码永远不会被执行。我收到500错误。按F-12查看IE中的请求显示500错误

enter image description here

有关其为何在本地运行但未在服务器上运行以及如何解决此问题的任何想法或建议?

1 个答案:

答案 0 :(得分:1)

尝试使用@Url.Action("Read", "Home")

构建您的网址
var ds = new kendo.data.TreeListDataSource({
                transport: {
                    read: {
                        url: '@Url.Action("Read", "Home")',
                        type: "POST",
                        dataType: "json"
                    }},
                    schema:...
                }

如果您的javascript代码位于javascript文件中,则无法使用剃刀助手。在这种情况下我做的是将它添加到我保存在我的布局文件中的URL列表中。像这样:

<script type="text/javascript">
    var Configuration;
    (function (Configuration) {
        var urls = {
            Read: '@Url.Action("Read", "Home")'
        }
        Configuration.url = urls;
    })(Configuration || (Configuration = {}));
</script>

然后将其用作:

transport: {
    read: {
        url: Configuration.url.Read
    }
}