0

代码javascript函数我已经包含了我的MVC应用程序的_layout页以下脚本标签:调用从内使用ClientScriptManager

<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"); 
    } 
}); 

这是工作,我已经创造了e-learning课程但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

试试这个:

首先,您的视图页面上,创建一个简单的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);