c# - 按钮 Onclick 事件(在 codbehind 中)不会在 MVC 2 中触发

标签 c# asp.net asp.net-mvc visual-studio-2010 asp.net-mvc-2

我有一个在 VS 2008 中的 MVC 1.0 Web 应用程序;我刚刚将项目升级到 VS 2010,它自动将 MVC 升级到 2.0。

我有一堆 viewpages 有手动添加的代码隐藏文件。项目在升级前运行良好,但现在连 onclick 都不触发了。

即我有一个带有 onclick 事件的 asp:button,它指向代码隐藏中的一个方法。单击按钮时,不会触发 onclick 事件。事实上,当您查看 Page 变量时,IsPostBack 为 false。

这真的很奇怪,我想知道是否有人知道发生了什么以及如何解决它。我认为这与 MVC 2.0 的变化有关;但我不确定。

非常感谢任何帮助,我已经尝试解决这个问题一段时间了。

(删除代码隐藏并将其移动到 Controller 并不是一个真正的选择,因为有这么多页面,回到 vs 2008 是最后的选择,因为我想利用一些 VS 2010 的功能,如性能测试.)

最佳答案

使用代码隐藏违反了 MVC 模式,因此不受支持。这在 MVC 1 中起作用的事实是偶然的和无意的。

您注意到该项目有点太大,无法删除代码隐藏并将该逻辑移至 Controller 。作为替代方案,如果您发现 WebForms 回发模型适合您此处的页面,您可能只想将网站的这一部分设为 WebForms(真正的 .aspx,无需通过 MVC 管道)。这可能比尝试将这些页面转换为 MVC 更容易。请记住,MVC 和 WebForms 将在同一个应用程序中愉快地共存。

否则,考虑到您的时间限制,您最好的选择可能是恢复到 MVC 1 + VS2008。

关于c# - 按钮 Onclick 事件(在 codbehind 中)不会在 MVC 2 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2767819/

相关文章:

c# - SQL Where 子句条件

javascript - 悬停效果会产生闪烁

c# - 使用母版页从带有 ID 的文本框更改 CSS

asp.net-mvc - 使用 ASP.Net Membership,获取所有用户

javascript - 如何在 JavaScript 中从 Razor 模型对象获取 JSON 对象

c# - 如何在包含一个变量的类中使用多个属性?

c# - 从属性 setter 加载异步数据

C# 函数参数数组与列表

asp.net - 将 S-JIS 字符串解码为 UTF-8

c# - 无法在 asp.net mvc 中更新 cookie