ASP.NET MVC 5在View.cshtml文件中编写javascript

ASP.NET MVC 5在View.cshtml文件中编写javascript,javascript,jquery,asp.net,asp.net-mvc,razor,Javascript,Jquery,Asp.net,Asp.net Mvc,Razor,我是ASP.NET新手,我正在MVC中努力使用javascript。 我在视图文件夹中有一个IndexView.cshtml文件,我想在里面写一个简短的javascript部分,用一个按钮将站点移回顶部。 它在正常的html中工作得非常好,就是这样。 通常,每当我从网站顶部向下滚动时,就会出现一个按钮,当我返回到最顶部时,按钮就会消失。在这里它根本没有出现。 我该怎么做才能让它工作? 提前谢谢 这是我在IndexView.cshtml中的身体末尾,就在标记之前 这是脚本文件夹/Scripts/m

我是ASP.NET新手,我正在MVC中努力使用javascript。 我在视图文件夹中有一个IndexView.cshtml文件,我想在里面写一个简短的javascript部分,用一个按钮将站点移回顶部。 它在正常的html中工作得非常好,就是这样。 通常,每当我从网站顶部向下滚动时,就会出现一个按钮,当我返回到最顶部时,按钮就会消失。在这里它根本没有出现。 我该怎么做才能让它工作? 提前谢谢

这是我在IndexView.cshtml中的身体末尾,就在标记之前

这是脚本文件夹/Scripts/move-top.js中move-top.js的一部分

(function ($) {
    $.fn.UItoTop = function (options) {
        var defaults = {
            text: 'To Top', min: 200, inDelay: 600, outDelay: 400, containerID: 'toTop', containerHoverID: 'toTopHover',
            scrollSpeed: 1200, easingType: 'linear'
        }, settings = $.extend(defaults, options), containerIDhash = '#' + settings.containerID, containerHoverIDHash = '#' + settings.containerHoverID;
        $('body').append('<a href="#" id="' + settings.containerID + '">' + settings.text + '</a>');
        $(containerIDhash).hide().on('click.UItoTop', function ()
        {
            $('html, body').animate({ scrollTop: 0 }, settings.scrollSpeed, settings.easingType);
            $('#' + settings.containerHoverID, this).stop().animate({ 'opacity': 0 }, settings.inDelay, settings.easingType); return false;
        }).prepend('<span id="' + settings.containerHoverID + '"></span>').hover(function ()
        { $(containerHoverIDHash, this).stop().animate({ 'opacity': 1 }, 600, 'linear'); }, function ()
        { $(containerHoverIDHash, this).stop().animate({ 'opacity': 0 }, 700, 'linear'); });
        $(window).scroll(function () {
            var sd = $(window).scrollTop();
            if (typeof document.body.style.maxHeight === "undefined")
            {
                $(containerIDhash).css({
                    'position': 'absolute', 'top': sd + $(window).height() - 50
                });
            }
if(sd>settings.min)
$(containerIDhash).fadeIn(settings.inDelay);else
$(containerIDhash).fadeOut(settings.Outdelay);});};})(jQuery);

看起来您的js代码依赖于jQuery库。这意味着您需要在执行此代码之前加载jQuery代码

在布局文件中,@RenderSectionscripts,required:false在加载jQuery库后在最底层被调用

<div id="pageContent">
    @RenderBody()
</div>
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

看起来您的js代码依赖于jQuery库。这意味着您需要在执行此代码之前加载jQuery代码

在布局文件中,@RenderSectionscripts,required:false在加载jQuery库后在最底层被调用

<div id="pageContent">
    @RenderBody()
</div>
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

@TheGalax你记得引用你的javascript文件吗

-添加jQuery-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="/Scripts/move-top.js"></script>

@TheGalax你记得引用你的javascript文件吗

-添加jQuery-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="/Scripts/move-top.js"></script>

我看这里没有问题。只是一个目标和一些代码。你有什么问题?什么不起作用?与其他网站一样,ASP.NET MVC视图基于HTML。是什么阻止您像在HTML文件中一样将JavaScript放入其中?哦,对不起,它就是不起作用;。通常在我的页面上,每当我从顶部向下滚动时,按钮就会出现,但在这里它不会出现。看起来它连我的代码都认不出来。你应该试着做一些基本的工作,并描述一下你在帖子中查到的内容。例如,确保正确加载脚本,在开发人员控制台中检查JavaScript错误,单步执行代码等等@mason现在我已经包括了完全在cshtml文件之外运行的其他脚本,例如,它们都工作得很好:这里没有问题。只是一个目标和一些代码。你有什么问题?什么不起作用?与其他网站一样,ASP.NET MVC视图基于HTML。是什么阻止您像在HTML文件中一样将JavaScript放入其中?哦,对不起,它就是不起作用;。通常在我的页面上,每当我从顶部向下滚动时,按钮就会出现,但在这里它不会出现。看起来它连我的代码都认不出来。你应该试着做一些基本的工作,并描述一下你在帖子中查到的内容。例如,确保正确加载脚本,在开发人员控制台中检查JavaScript错误,单步执行代码,等等@mason现在我已经包括了完全在cshtml文件之外运行的其他脚本,例如,它们都工作得很好:是,我是这样做的:发布完整的cshtml总是一个好主意,为你的问题提供更好的上下文@Shyju有次好的猜测:见上面的编辑是的,我这样做了:发布完整的cshtml总是一个好主意,为你的问题提供更好的上下文@Shyju有下一个最好的猜测:参见上面的编辑谢谢,我在我的脚本中添加了@section Scripts{},现在看起来它可以工作了:现在唯一缺少的是按钮是透明的,看起来.img没有正确加载。谢谢,我添加了@section Scripts{}对我的脚本来说,它现在看起来可以工作了:现在唯一缺少的是按钮是透明的,看起来.img没有正确加载。