gpt4 book ai didi

asp.net - Asp.Net WebForms 上的 MVP

转载 作者:行者123 更新时间:2023-12-05 00:09:16 26 4
gpt4 key购买 nike

这个我不是很清楚......

当在 View 上有一个 GridView 时, Controller 是否必须设置数据源、列等?或者我只需要公开 DataBinding 的东西,从 Controller 触发它,让 View 上的 html/codebehind 处理所有的渲染和连接?

更准确地说:关于我应该有的观点

private GridView _gv
public _IList<Poco> Source {
get {_gv.DataSource;}
set {_gv.DataSource = value;
_gv.DataBind();}
}

或者应该是(来自 MVP pattern - Passive View and exposing complex types through IView (Asp.Net, Web Forms) )
private GridView _datasource;
public DataSource
{
get { return _datasource; }
set
{
_datasource = value;
_datasource.DataBind();
}
}

也许我完全错了......

我在哪里可以找到一个不是 ASP.Net MVP 的“Hello world”示例的示例???

最佳答案

您的 Controller 应该负责设置数据绑定(bind)的“结果”。 View 负责正确显示它。

例如,您的 webform/usercontrol (View) 可以将数据源公开为对象属性,您的 View 在收到它时应该知道如何处理:

public MyObject DataSource 
{
set
{
_datasource = value;
_datasource.DataBind();
}
}

因此,如果您需要有一个 ItemDataBound 事件,我仍然会在 View 中处理它。即使事件中可能存在业务逻辑。如果您需要在事件中包含业务逻辑,我会将其放入 MyObject 结果中,然后再将其传递给 View 。

因此,一个示例是让“MyObject”的属性为“AllowDelete”,并且在您的 ItemDataBound 中,此属性的值确定 GridView 中的列是否启用。

关于asp.net - Asp.Net WebForms 上的 MVP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/664446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com