2

我正在创建一个简单的测试应用程序,以便了解 ASP.Net MVC 如何处理我们每天处理的问题。我们使用来自 Developer's Express 的第 3 方控件,并且我们将继续使用它们。如果它们绝对不能在 ASP.Net MVC 中工作,那么我们将不会使用 ASP.Net MVC。

话虽如此,有人已经找到了一种让它发挥作用的方法。他只需要在后面的代码中放一些代码。他必须重写 OnLoad 事件,只需将 grid.DataSource = model 和 grid.DataBind() 放入,它就可以按预期工作。

在 ASP.Net MVC RC 中,消除了文件隐藏代码。我知道我可以把它们放回去......但是,由于人们通常说文件后面的代码是邪恶的,那么你还能如何做到这一点?

4

4 回答 4

13

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

<script runat="server">
  private void Page_Load(object sender, System.EventArgs e)
  {
     //Initialize your control.
  }
</script>
于 2009-02-19T21:24:54.993 回答
0

我(似乎记得我)看到过类似于直接在视图(.aspx)中做的事情:

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

为 Telerik 控件工作,建议的解决方案闻起来很像这样,所以也许这对你有用?

于 2009-02-19T20:17:36.923 回答
0

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


澄清:如果不使用GridView'sViewstatePostBack功能,它当然也会在 anASP.NET MVC View中起作用。但是,没有OnLoad要覆盖的事件,因为页面没有相同的生命周期,所以如果要使用这个控件,已经建议的解决方案可能是最好的。

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

还要确保在页面顶部有这个。

于 2009-02-19T20:28:47.917 回答
0

这是一个视频和可下载的示例项目,展示了如何在 MVC 项目中使用 Developer Express 控件。据说 Developer Express 对 MVC 的支持即将推出。目前,您必须解决有关事件处理和对视图状态的依赖的问题。但我最近听到的是他们确实打算支持 MVC。

于 2009-02-19T21:38:15.263 回答