jQuery:使用ajax无法正确执行控制器功能

时间:2016-05-10 11:58:05

标签: javascript c# jquery ajax

我在C#MVC中编写一个Web应用程序,它动态地从服务器加载信息以提高速度。

目前我有一些错误,我无法确定导致问题的原因,所以我会尽力解释发生了什么:

多次创建此div并获取每个项目的ID。

<div>
     <a href='@item.LinkToJiraByStatus("Open")' target="_blank">Open</a>:
     @{string JiraKey = item.JiraProjectKey;}
     <span id="JiraOpen" onload="GetOpenJira"></span>
</div>

然后在该范围内,启动脚本GetOpenJira:

 <script id="GetOpenJira">
    var url = "/HicVault/Projects/GetNumJiraOpenByKey";
    var key = $('#JiraKey').val();
    $.get(url, { input: key }, function (data) { $("#JiraOpen").html(data) });
</script>

这个脚本应该异步请求控制器完成GetNumJiraOpenByKey函数,并将JiraKey用作参数。控制器中的功能是:

[HttpGet]
    public ActionResult GetNumJiraOpenByKey(string JiraProjectKey)
    {
        var sJql = "project = \"" + JiraProjectKey + "\" and status = \"Open\""; 
        var resultFieldNames = new List<string> { "resolution" };
        Issues issues = new JiraClient(new JiraAccount()).GetIssuesByJql(sJql, 0, 1000, resultFieldNames);
        return PartialView(issues.total);
    }

基本上,此函数在计算了该特定项目的所有问题后返回一个int。我希望这可以通过AJAX使用jQuery在页面加载后加载这些值来大大提高速度。 (目前没有AJAX,页面加载时间> 30秒。)

谢谢,如果有人可以提供帮助。

编辑:我想我应该问一个问题,目前使用此代码加载页面,大约5秒后,控制台中出现服务器500错误,说明存在内部服务器错误。我知道这是一个普遍的错误,深入到这一行:

"$.get(url, { input: key }, function (data) { $("#JiraOpen").html(data) ". 

我猜测我的工作逻辑在Razor MVC + JS中是不可能的,或者我得到jQuery ajax的基本原理出错?

1 个答案:

答案 0 :(得分:0)

将脚本重写为以下内容......

 <script id="GetOpenJira">
    var url = "/HicVault/Projects/GetNumJiraOpenByKey";
    var key = $('#JiraKey').val();
    $.get(url, { JiraProjectKey: key }, function (data) { $("#JiraOpen").html(data) });
 </script>