C# asp.net MVC应用程序中的按钮是如何连接的?

C# asp.net MVC应用程序中的按钮是如何连接的?,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一个asp.NETMVC应用程序。.cshtml文件中有一个。该按钮只有一个id。没有任何javascript与之关联。我在任何控制器中都没有看到此按钮名称 但是,当点击按钮时,它不会执行任何操作。单击按钮后,我如何跟踪触发按钮操作的原因?由于按钮是在Html.begin括号中定义的,因此按钮单击被连接到使用表单数据执行POST提交。我认为您对ASP.NETWebForm和MVC的工作原理有点困惑 虽然WebForm与WinForms非常相似,从某种意义上说,控件可以有事件使其具有有状态的外

我有一个asp.NETMVC应用程序。.cshtml文件中有一个
。该按钮只有一个
id
。没有任何javascript与之关联。我在任何控制器中都没有看到此按钮名称


但是,当点击按钮时,它不会执行任何操作。单击按钮后,我如何跟踪触发按钮操作的原因?

由于按钮是在Html.begin括号中定义的,因此按钮单击被连接到使用表单数据执行POST提交。

我认为您对ASP.NET
WebForm
MVC
的工作原理有点困惑

虽然
WebForm
WinForms
非常相似,从某种意义上说,控件可以有事件使其具有有状态的外观,
MVC
并不相同,但它包含了HTTP的
无状态
特性

MVC
中,当单击按钮时,它通常与
控制器和
操作关联,并将数据发布到
中。因此,按钮点击被转换为控件上的操作,就像
WebForm
中的方法调用一样



Q.控制器仍然需要知道处理点击的按钮?


服务器端不存在控制,这是无状态的缺点在MVC中,没有单击,只有对控制器的方法调用


可以使用10个不同的按钮调用相同的操作。如果你可以共享
.cshtml
的代码,那么我可能可以提供更多帮助。

在单独的文件中可能有java脚本。在该JavaScript文件中,必须附加click处理程序,该处理程序必须通过任何机制在控制器中调用您的操作

首先。。在项目中搜索使用该按钮id的其他位置。
这可能是您可以开始跟踪的点…

“它不执行操作”?与问题的其余部分不一致。。。示例HTML可能会有所帮助(我怀疑它是默认的“提交”按钮)。ASP.NETMVC不是Web表单。按钮不会自动触发代码中的
单击事件。正如Alexei所说,这可能是一个“提交”按钮,而在代码中可以找到
@Html.BeginForm()
等。cshtml视图代码是查看其全部内容所必需的。它不执行操作或确实执行操作?@CodeCaster
默认情况下具有
type=submit
。。。如果您不希望按钮提交,您可以始终向BeginForm中添加onSubmit=“return MyValidator()”,然后构建一个javascript函数,该函数仅在某些条件存在时返回true。控制器仍然需要了解按钮以处理单击。@4thSpace请编辑问题以与接受的答案一致。应该是“ASP.NETMVC与WebForms相比的工作原理”,而不是为什么某个按钮做了/没有做什么。@AlexeiLevenkov它有什么不同?这是同样的结果。除此之外,它不会为反对票做任何事情。@4thSpace至少会更改明显错误的“它不执行操作”。你可能会惊讶于修正你的问题对否决票的影响。这是我最初的观点。既然其他人已经提供了额外的信息,你就要求我在问题中添加信息。如果我发布问题并根据评论和答案中的所有附加信息不断修改它们,那么没有人会知道原来的问题是什么。它还可能使评论/答案令人困惑,甚至不相关。我真的不在乎那些反对票。默认情况下,您可以获得它们。