应用程序正在使用 MVP - 被动视图模式,我们了解到 aspx.cs 中的所有事件都需要调用演示者方法,而不是直接访问模型。
我们正在使用 gridview 来显示数据,并且必须根据标志更改列颜色之一,并且需要附加一些文本。但是,我们不确定如何将下面的代码移动到演示者以便能够编写单元测试。
protected void dqGrid_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var creditOrDebit = ((Label)e.Row.FindControl("lblCreditOrDebit")).Text;
if(creditOrDebit == "Debit")
{
Label lblAmount = ((Label)e.Row.FindControl("lblAmount"));
lblAmount.CssClass = "txtRed";
lblAmount.Text = "-" + lblAmount.Text;
}
}
}
编辑:
我们曾想过在presenter中有一个函数,它将amount作为输入并返回css,但作为指导,我们看到presenter中的所有方法都需要为void,因为它已经具有View属性。