我的MVC应用程序的_layout页面上包含以下脚本标记:
<script src="https://backpack.openbadges.org/issuer.js"></script>
这用于在完成课程时颁发徽章。到目前为止,我一直使用javascript直接从Views发出徽章,如:
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);
但我没有正确定义任何构造函数
答案 0 :(得分: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);