从MVC控制器执行javascript函数
我已经创建了一个在线学习系统,现在我正在尝试使用Rustici创建的Javascript库集成tincanapi,我想知道是否可以从MVC控制器调用Javascript方法。在web视图中,我使用以下代码创建tincan语句:从MVC控制器执行javascript函数,javascript,jquery,asp.net-mvc-4,controller,tin-can-api,Javascript,Jquery,Asp.net Mvc 4,Controller,Tin Can Api,我已经创建了一个在线学习系统,现在我正在尝试使用Rustici创建的Javascript库集成tincanapi,我想知道是否可以从MVC控制器调用Javascript方法。在web视图中,我使用以下代码创建tincan语句: <script type="text/javascript" src= "@Url.Content("~/Scripts/tincan.js")"></script> var tincan = new TinCan ( {
<script type="text/javascript" src= "@Url.Content("~/Scripts/tincan.js")"></script>
var tincan = new TinCan
(
{
recordStores: [
{
endpoint: "https://cloud.scorm.com/tc/V4FF9VBCSY/",
username: "myusername",
password: "mypassword"
}
]
}
);
function AcceptFriend(fullName,emailAddress)
{
tincan.sendStatement
(
{
actor: {
name: "@Model.User.Forename" + " @Model.User.Surname",
mbox: "@Model.User.Email"
},
verb: {
id: "http://adlnet.gov/expapi/verbs/answered",
display: {
"en-US": "accepted a friend request from"
}
},
target: {
objectType: "Agent",
name: fullName,
mbox: emailAddress
}
}
);
};
您只能在返回时从控制器调用Javascript函数。例如:
JavascriptResult MyAction()
{
// Declare the purpose of the action
// The Javascript function
return JavaScript("YourJavaScriptFunction");
// If you need parameters passed
// return JavaScript(String.Format("YourFunction({0},{1}), paramter1, parameter2);"
}
在本例中,javascript必须声明要返回的函数,此外,如果符合您的目的,您还可以将操作中的任何参数传递到函数中
如果需要将数据从客户端绑定到控制器,最好使用AJAX调用。现在有一个TinCan.NET库,在这种情况下使用会更好。这样,它就可以从控制器直接向LRS发出调用,而不是在JavaScript中从客户端发出调用。您可以在此处找到有关该库的信息:
有关其他库的列表,请查看:
干杯布莱恩我知道这一点,因为我一直在积极宣传更新:)
JavascriptResult MyAction()
{
// Declare the purpose of the action
// The Javascript function
return JavaScript("YourJavaScriptFunction");
// If you need parameters passed
// return JavaScript(String.Format("YourFunction({0},{1}), paramter1, parameter2);"
}