ASP MVC 4,将数据从javascript(视图)传递到C#静态方法
我正在开发一个视频应用程序,我想使用视频播放器API(Flowplayer)跟踪用户的行为。 我通过在每个事件上设置一个事件监听器来使用javascript处理“播放、暂停、恢复等”事件。捕获事件后,我调用服务器端的一个静态方法,以便将操作写入数据库(并对用户隐藏跟踪信息) 这就是我现在得到的: JS代码:ASP MVC 4,将数据从javascript(视图)传递到C#静态方法,javascript,asp.net-mvc,client-side,server-side,Javascript,Asp.net Mvc,Client Side,Server Side,我正在开发一个视频应用程序,我想使用视频播放器API(Flowplayer)跟踪用户的行为。 我通过在每个事件上设置一个事件监听器来使用javascript处理“播放、暂停、恢复等”事件。捕获事件后,我调用服务器端的一个静态方法,以便将操作写入数据库(并对用户隐藏跟踪信息) 这就是我现在得到的: JS代码: <script type="text/javascript"> // bind listeners to all players on the page flowplayer(f
<script type="text/javascript">
// bind listeners to all players on the page
flowplayer(function (api, root) {
api.bind("pause", function () {
console.info("pause", api.paused);
var timePassed = api.video.time;
@{
Reporter.ReportPause(timePassed);
}
//... more code ...
</script>
public static void ReportPause ( string timePassed)
{
// do something with timePassed
}
我遇到一个异常:“无法解析符号‘timePassed’”
如何以正确/优雅的方式(以最小的开销)完成此任务
谢谢大家,,
YNWA
//将侦听器绑定到页面上的所有播放机
flowplayer(函数(api,根){
api.bind(“暂停”,函数(){
控制台信息(“暂停”,api暂停);
var timePassed=$.flowplayer().getTime();
$.ajax({
url:“/Home/ReportPause”,
键入:“POST”,
数据类型:“json”,
数据:{timePassed:timePassed},
错误:函数(a,b,c){onError(a,b,c,parameters);},
成功:函数(数据){onSuccess(数据,参数);}
});
});
}
//控制器
公共类家庭控制器{
public JsonResult ReportPause(字符串时间传递)
{
TimePassedClass.ReportPause(timePassed);
//更多代码
}
}
公共静态类TimePassedClass
{
公共静态void ReportPause(字符串timePassed)
{
//你的逻辑
}
}
no,就是no。您需要了解razor引擎是如何工作的。C#代码是在编译时解析的(编译razor页面,而不是编译项目)。您不能在其中使用javascript,javascript是在页面运行时执行的(客户端)您无法从客户端的javascript设置服务器端变量的值。请进行ajax调用以调用您的服务器端函数。我尝试了ajax,但不知道在Url部分中放置什么,因为类和方法是静态的。您好,Jitendra,我想如果您使用一些像signar这样的东西。我知道与本次讨论不太相关,但我认为可能值得一提。谢谢:)(您应该返回一个JsonResult对象)自己做一些努力:P
<script type="text/javascript">
// bind listeners to all players on the page
flowplayer(function (api, root) {
api.bind("pause", function () {
console.info("pause", api.paused);
var timePassed = $.flowplayer().getTime();
$.ajax({
url: '/Home/ReportPause',
type: 'POST',
dataType: "json",
data: { timePassed: timePassed },
error: function (a, b, c) { onError(a, b, c, parameters); },
success: function (data) { onSuccess(data, parameters); }
});
});
}
</script>
// Controller
public class HomeController{
public JsonResult ReportPause(string timePassed)
{
TimePassedClass.ReportPause(timePassed);
// more code
}
}
public static class TimePassedClass
{
public static void ReportPause(string timePassed)
{
// your logic
}
}