【问题标题】:Sending data from controller to javascript using Linq 500 internal server error mvc2使用 Linq 500 内部服务器错误 mvc2 将数据从控制器发送到 javascript
【发布时间】:2014-08-09 00:00:43
【问题描述】:

C#

public ActionResult SimpleQuery() 
{    
    ClientDataContext dc = new ClientDataContext();
    var userResults = from u in dc.TS_Trucks select u;
    return Json(userResults.ToList(), JsonRequestBehavior.AllowGet);
}

Javascript

$.ajax({
    url: '@Url.Action("SimpleQuery")',
    type: 'GET',
    dataType: 'json',
    success: function (data) {

    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
    }
});

我什至不使用 JavaScript 中的数据,我传递它的方式可能是问题,但似乎无法弄清楚。

【问题讨论】:

  • 500 错误是什么意思?
  • 内部服务器错误
  • 尝试启用详细的错误消息:
  • 调试时,服务器是否抛出异常?那是什么异常? JavaScript 或调用服务器端操作的方式没有任何问题。问题完全出在服务器端。

标签: c# javascript asp.net asp.net-mvc json


【解决方案1】:

您需要为您的 url 助手指定控制器。服务器错误来自尝试定位您的操作。试试这个 ajax url:

'@Url.Action("SimpleQuery", "<ControllerForYourActionHere>")'

【讨论】:

  • 这是不正确的。如果视图是从不同的控制器生成的,您只需要指定第二个参数(控制器名称)。其次,如果 url 不正确,它会返回 404 错误,而不是 500 错误。
  • 这也是我的建议,我不知道 Stephen,我知道在 MVC 的最新版本中 URL.Action 是不必要的
【解决方案2】:

内部错误通常推断错误的 URL 地址。

在这种情况下,url 参数没有设置为正确的值。

首先,您需要检查哪个路由器映射到此函数:SimpleQuery

然后,使用该地址填写 url 参数。

另外,我不认为 '@Url.Action("SimpleQuery", "&lt;ControllerForYourActionHere&gt;")' 如果你放

它在 javascript 文件中。它可能适用于 cshtml 文件。

所以,结论是当你在做前端编程时,使用绝对链接会是个好主意。

它确保您在第一时间点击正确的地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-20
    • 2015-11-23
    • 2014-07-02
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多