从MVC控制器执行javascript函数

从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 ( {

我已经创建了一个在线学习系统,现在我正在尝试使用Rustici创建的Javascript库集成tincanapi,我想知道是否可以从MVC控制器调用Javascript方法。在web视图中,我使用以下代码创建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);"
}