0

我的 MVC 应用程序的 _layout 页面上包含以下脚本标记:

<script src="https://backpack.openbadges.org/issuer.js"></script>

这用于在完成课程时颁发徽章。到目前为止,我一直在使用 javascript 直接从视图中发布徽章,例如:

var postData = {
  'badgeClassID': 1
};

$.ajax({
  type: "GET",
  cache: false,
  url: "/Admin/NewBadgeAssertion",
  data: postData,
  success: function (dataBA) {
     var myURL = dataBA;
     OpenBadges.issue([myURL]);
  },
  error: function (error) {
     alert("An Error has occurred during the Issue of this OpenBadge");
  }
});

这适用于我创建的电子学习课程,但 SCORM 课程的完成记录在窗口关闭时,我现在想通过 C# 代码而不是浏览器视图为 SCORM 课程颁发徽章。

如何使用 ClientScriptManager 从后面的代码调用 OpenBadges.issue([myURL])。我找到了 RegisterStartupScript 方法,但我不确定如何派生类型、键和脚本值。我试过这个:

ClientScriptManager csm = new ClientScriptManager();
csm.RegisterStartupScript(GetType(), "msgbox", "alert('SCORM BADGE HAS BEEN ISSUED FOR SUCCESSFUL COMPLETION');", true); 

但我没有正确定义任何构造函数

4

1 回答 1

0

尝试这个:

首先,在您的视图页面上,创建一个简单的 javascript 函数,它会执行您需要它执行的操作,例如调用 OpenIssues.issue:

function myFunction(myUrl)
{
    alert('test:' + myUrl);
    OpenBadges.issue(myUrl);
}

在您的代码隐藏中,您可以调用 javascript 函数:

String jscript = "myFunction('" + myUrl + "')"; //sending url as parameter
Page.ClientScript.RegisterStartupScript(this.GetType(),"myscript",jscript,true);
于 2014-03-26T12:15:25.247 回答