在View中添加了一段jQuery代码用来控制一个按钮的点击事件。发现运行时提示$对象没有定义,经过在浏览器右键查看源文件发现,script代码在引用jquery代码的上方,执行时jquery还未引入,找到模板文件_Layout.cshtml在页面下方看到@RenderSection("Scripts", required: false)  于是回到View文件中将script代码放置在范围中,最终运行时会将@section Scripts 之间的代码放到@RenderSection这个占位符的位置,从而问题解决,果然自己MVC经验不足,之前学过的知识也忘记了,才出现这个窘境。看来还是要多多学习。准备将多年的老项目由asp.net 升级到MVC。

@{
    ViewData["Title"] = "QRLogin";
}
<br />
<a class="btn btn-lg btn-default" id="btnShowQRCode">获取二维码</a>
<img id="imgQRCode" />
@section Scripts
{
    <script type="text/javascript" language="javascript">
        $().ready(function () {
            $("#imgQRCode").hide();
        });
    </script>
}