Javascript 防止加载时MVC视图中的C#代码执行

Javascript 防止加载时MVC视图中的C#代码执行,javascript,c#,asp.net-mvc-4,razor,Javascript,C#,Asp.net Mvc 4,Razor,我有一个C#MVC项目设置。在我看来,我在JavaScript函数中使用了Razor的C#代码。我只在单击事件时调用JavaScript函数 但是,当页面加载时,会调用此函数,导致执行我没有预料到的C#代码。是否有一种方法可以防止在加载时执行,并且仅在调用函数时执行 这是我的密码: <a id="id1" href="#">Link</a> $("#id1").click(function () { customFunction(); }); function

我有一个C#MVC项目设置。在我看来,我在JavaScript函数中使用了Razor的C#代码。我只在单击事件时调用JavaScript函数

但是,当页面加载时,会调用此函数,导致执行我没有预料到的C#代码。是否有一种方法可以防止在加载时执行,并且仅在调用函数时执行

这是我的密码:

<a id="id1" href="#">Link</a>

$("#id1").click(function () {
    customFunction();
});

function customFunction() {
    @using System;         
    @using System.Web.Configuration; 
    @using Microsoft.Office.Interop.Excel;

    @{
       // C# code
     }
}

$(“#id1”)。单击(函数(){
自定义函数();
});
函数customFunction(){
@使用制度;
@使用System.Web.Configuration;
@使用Microsoft.Office.Interop.Excel;
@{
//C#代码
}
}
customFunction()
将在页面加载时执行。

生成页面时将运行c代码。基本上,它构建了一个进入浏览器的网页,因此浏览器上不会运行c#代码


我通常将razor代码限制为构建页面结构或从模型中获取信息。

它不会在“页面加载”中执行。它甚至在发送到视图之前就已经在服务器上执行了。C#代码是服务器端代码,您的浏览器对此一无所知。浏览器响应客户端事件(单击按钮)在服务器上执行代码的唯一方法是使用ajax调用服务器方法。奇怪的是,页面加载时会调用click函数。放置一个console.log('test');在customFunction()之前;再次检查一些旧代码是否未缓存,以及确认是否调用了click函数。。