在ASP.NETMVC视图中使用OnLoad事件的替代方法?

在ASP.NETMVC视图中使用OnLoad事件的替代方法?,.net,asp.net,asp.net-mvc,code-behind,.net,Asp.net,Asp.net Mvc,Code Behind,我正在创建一个简单的测试应用程序,这样我就可以看到ASP.NETMVC是如何为我们每天处理的事情工作的。我们使用Developer's Express中的第三方控件,我们将继续使用它们。如果它们绝对不能在ASP.NETMVC中工作,那么我们就不会使用ASP.NETMVC 尽管如此,还是有人找到了一种方法让它发挥作用。他只需要在后面的代码中添加一些代码。他必须重写OnLoad事件,只需将grid.DataSource=model和grid.DataBind()放在一起,就可以正常工作了 在ASP.

我正在创建一个简单的测试应用程序,这样我就可以看到ASP.NETMVC是如何为我们每天处理的事情工作的。我们使用Developer's Express中的第三方控件,我们将继续使用它们。如果它们绝对不能在ASP.NETMVC中工作,那么我们就不会使用ASP.NETMVC

尽管如此,还是有人找到了一种方法让它发挥作用。他只需要在后面的代码中添加一些代码。他必须重写OnLoad事件,只需将grid.DataSource=model和grid.DataBind()放在一起,就可以正常工作了

在ASP.NETMVCRC中,消除了代码隐藏文件。我知道我可以把它们放回。。。然而,由于人们通常说文件背后的代码是邪恶的,你还可以如何做到这一点呢?

我(似乎记得我)看到过类似于直接在视图(.aspx)中执行的操作:



适用于Telerik控件,建议的解决方案闻起来很像这样,因此可能对您有效?

任何使用
ViewState
的控件在
ASP.NET MVC
中都不起作用-标准的
System.Web.UI.WebControls.GridView
就是其中之一,但是我不知道您正在使用的库中的
网格
控件。请注意,由于
MVC
WebForms
之间的差异,任何需要
ViewState
的控件都无法正常工作


说明:如果未使用
GridView
Viewstate
PostBack
功能,它当然也会在
ASP.NET MVC视图中运行。但是,没有要重写的
OnLoad
事件,因为页面没有相同的生命周期,因此如果要使用此控件,那么已经建议的解决方案可能是最好的

<%
    grid.DataSource = Model;
    grid.DataBind();
%>


另外,请确保将此文件放在页面顶部。

不创建代码隐藏文件的最简单方法是将其添加到.aspx页面的任何位置:

<script runat="server">
  private void Page_Load(object sender, System.EventArgs e)
  {
     //Initialize your control.
  }
</script>

私有无效页面加载(对象发送方,System.EventArgs e)
{
//初始化控件。
}

开发者直通车对MVC的支持即将推出。目前,您必须解决有关事件处理和对视图状态的依赖性的问题。但我最近听到的是,他们确实打算支持MVC。

我试过了,但没用。。。我可以一步一步地看,模型中确实有数据,网格设置正确,只是说没有数据可以显示。我在问题中提到的例子就是这个网格控件。他让它工作,但他必须覆盖代码隐藏中的OnLoad事件。我正试图找到一种不创建代码隐藏文件的方法。我可以关闭viewstate和postback功能。你应该只进行af,然后它们就可以工作了?!否-添加标记不会使viewstate在MVC中工作。这主要是因为对WebForms应用程序的多次请求都是通过js回发完成的,而MVC应用程序的请求则通过控制器完成,控制器事先不知道将在哪个视图上呈现。这就完成了。我不知道为什么我一开始就没有想到这一点。谢谢。我必须这样做,使我的活动报告正确生成并绑定到我的WebViewer控件。re:是的,就是我刚才说的那个人使它起作用的。正如我所解释的,他必须使用文件背后的代码。
<script runat="server">
  private void Page_Load(object sender, System.EventArgs e)
  {
     //Initialize your control.
  }
</script>