我有一个名为productList.aspx的页面,其中包含由jquery调用的静态webmethod。 该页面包含实现IProductListView的productlist.ascx用户控件。 productlist.ascx再次包含addtobasket.ascx(实现IAddToBasketView)usercontrol,其中包含要添加到购物篮的按钮,并且与AddToBasketPresenter相关联。现在方法调用实际上是从productlist.aspx页面添加到addToBasket.ascx usercontrol。
一个问题是它总是抱怨addtobasketpresenter没有实例化,因为它是一个jquery调用(json)。 mvp架构是合适的吗?如果不是应该怎么样?
public partial class Product_ProductList : Page
{
[webmethod]
protected Basketsummaryview AddToCart()
{
UC_Product_ProductList uc=new UC_Product_ProductList();
uc.AddToBasket(ProductId);
}
}
public partial class UC_Product_ProductList : UserControl,IProductlistview
{
private ProductListPresenter _presenter;
protected Basketsummaryview AddToCart(int productid)
{
uc_addtocart uc=new UC_addtocart();
uc.Addtocart()
}
public partial class UC_addtocart : UserControl,IAddtocartview
{
private AddTocartPresenter _presenter;
Pageinit(object sender,e
protected Basketsummaryview AddToCart(int productid)
{
_presenter.Addtocart()
}
protected override void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
Init += PageInit;
Load += PageLoad;
}
protected void PageInit(object sender, EventArgs e)
{
_presenter = new ProductListPresenter(this);
}
protected void PageLoad(object sender, EventArgs e)
{
if (!IsPostBack)
{
_presenter.Display();
}
}
}