我在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的基本原理出错?
答案 0 :(得分:0)
将脚本重写为以下内容......
<script id="GetOpenJira">
var url = "/HicVault/Projects/GetNumJiraOpenByKey";
var key = $('#JiraKey').val();
$.get(url, { JiraProjectKey: key }, function (data) { $("#JiraOpen").html(data) });
</script>