Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC3 Razor:从视图调用javascript函数_Javascript_Asp.net Mvc 3_Razor - Fatal编程技术网

MVC3 Razor:从视图调用javascript函数

MVC3 Razor:从视图调用javascript函数,javascript,asp.net-mvc-3,razor,Javascript,Asp.net Mvc 3,Razor,我是MVC3 Razor的新手,希望在视图(index.cshtml)上显示运行时间。 我使用一个javascript函数并将其放入_Layout.cshtml中,以便所有其他“主”视图都可以使用它(请参见下面的代码片段) @视图包。标题 var uhr=新日期(); var minuten; var stunden; var sekunden; var区间=500; 功能基准(id){ uhr.setTime(uhr.getTime()+间隔); setTimeout(函数(){datum(

我是MVC3 Razor的新手,希望在视图(index.cshtml)上显示运行时间。 我使用一个javascript函数并将其放入_Layout.cshtml中,以便所有其他“主”视图都可以使用它(请参见下面的代码片段)


@视图包。标题
var uhr=新日期();
var minuten;
var stunden;
var sekunden;
var区间=500;
功能基准(id){
uhr.setTime(uhr.getTime()+间隔);
setTimeout(函数(){datum(id)},interval);
分钟=uhr.getMinutes();
stunden=uhr.getHours();
sekunden=uhr.getSeconds();
如果(分钟数<10){分钟数='0'+分钟数;}
如果(sekunden<10){sekunden='0'+sekunden;}
如果(stunden<10){stunden='0'+stunden;}
document.getElementById(id).innerHTML='Jetzt-ist:'+stunden+':'+minuten+':'+sekunden;
}
我的问题是: 1.如何从index.cshtml调用此函数(例如,datum(“uhr”)?我的尝试(见下文)无效:

@section SideBar {
    <p>
        <ul>
            <li><a href="Index.cshtml">Add Job</a></li>
            <li><a href="About.cshtml">About</a></li>
        </ul>
    </p>
    <p>
        The time is: datum("uhr");
    </p>
}
@节侧栏{

时间为:基准(“uhr”);

}
  • 还有其他更好的方法吗
  • 这是一种好的做法吗?我不确定将javascript函数放入_Layout.cshtml是否正确

  • Thx提前。

    基准函数的最后一行应该返回时间,而不是设置innerHTML:

    return 'Jetzt ist: ' + stunden + ':' + minuten + ':' + sekunden;
    
    您的HTML可以是这样的:

    The time is: <script type="text/javascript">datum(uhr)</script>
    
    时间为:基准(uhr)
    
    您应该将代码从_Layout.cshtml移动到单独的.js文件中,并添加对该文件的引用

    此外,还应将index.cshtml代码更改为:

    @section SideBar {
    <p>
        <ul>
            <li><a href="Index.cshtml">Add Job</a></li>
            <li><a href="About.cshtml">About</a></li>
        </ul>
    </p>
    <p>
        The time is: <span id="uhr"></span> 
    </p>
    <script type="text/javascript">datum("uhr");</script>
    }
    
    @节侧栏{
    
    

    时间是:

    基准(“uhr”); }

    我应该将.js文件放在哪个文件夹中?脚本与其他javascript文件一起将最有意义。我将新的.js文件放在脚本文件夹中,它就可以工作了。但是第二个跑得比真正的第二个快。如何控制?在我的js提琴示例中,它似乎是正确的。我不知道你怎么了。我想第二次不知怎么算了两次。在jsfiddle on html部分中,没有对datum(“uhr”)的调用,而在index.cshtml的代码段中,有对它的调用。在js中,也有一个称为数据(“uhr”)。我猜对了吗?
    @section SideBar {
    <p>
        <ul>
            <li><a href="Index.cshtml">Add Job</a></li>
            <li><a href="About.cshtml">About</a></li>
        </ul>
    </p>
    <p>
        The time is: <span id="uhr"></span> 
    </p>
    <script type="text/javascript">datum("uhr");</script>
    }