C# asp.net MVC应用程序中的按钮是如何连接的?
我有一个asp.NETMVC应用程序。.cshtml文件中有一个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非常相似,从某种意义上说,控件可以有事件使其具有有状态的外
。该按钮只有一个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至少会更改明显错误的“它不执行操作”。你可能会惊讶于修正你的问题对否决票的影响。这是我最初的观点。既然其他人已经提供了额外的信息,你就要求我在问题中添加信息。如果我发布问题并根据评论和答案中的所有附加信息不断修改它们,那么没有人会知道原来的问题是什么。它还可能使评论/答案令人困惑,甚至不相关。我真的不在乎那些反对票。默认情况下,您可以获得它们。