2017-04-20 37 views
0

我试图从〜/文件夹/页面显示所选项目到根页面名称在asp.net 2015中产品,我已经在页面中显示了所有项目,但是因为我称之为模型类有错误 “cannot implicitly convert type” 和一些错误,如无法从T1转换为T2

错误CS1503参数1:'不能从 'SAIT_Electronics.Pages.Product' 转换为“SAIT_Electronics.Product

using System; 
 
using System.Collections.Generic; 
 
using System.Linq; 
 
using System.Web; 
 
using System.Web.UI; 
 
using System.Web.UI.WebControls; 
 
using SAIT_Electronics.Models; 
 
using System.Collections; 
 
using System.Management; 
 
using SAIT_Electronics.Pages; 
 
namespace SAIT_Electronics.Pages 
 
{ 
 
public partial class Product : System.Web.UI.Page 
 
    { 
 
     protected void Page_Load(object sender, EventArgs e) 
 
     { 
 
      Fillpage(); 
 
     } 
 

 
     private void Fillpage() 
 
     { 
 
      //get selected products data 
 
      if(!String.IsNullOrWhiteSpace(Request.QueryString["id"])) 
 
      { 
 
       int id = Convert.ToInt32(Request.QueryString["id"]); 
 
       productmodel model = new productmodel(); 
 
       Product product = model.GetProduct(id); 
 
       //fill page with data 
 
       lblPrice.Text = "Price per unit : <br/>$" + product.Price; 
 
           lblTitle.Text = product.Name; 
 
       lblDescription.Text = product.Description; 
 
       lblItemNr.Text = id.ToString(); 
 
       imgProduct.ImageUrl = "~/Images/Products/" + product.Image; 
 
       //fill amount dropdownlist with number 1 -10 
 
       int[] amount = Enumerable.Range(1, 10).ToArray(); 
 
       ddlAmount.DataSource = amount; 
 
       ddlAmount.AppendDataBoundItems = true; 
 
       ddlAmount.DataBind(); 
 
      } 
 
     } 
 
    } 
 
}

here is attached error picture of asp.net

using System; 
 
using System.Collections.Generic; 
 
using System.Linq; 
 
using System.Web; 
 
using System.Web.UI; 
 
using System.Web.UI.WebControls; 
 
using System.Web.Configuration; 
 
using System.IO; 
 
using System.Collections; 
 
using SAIT_Electronics.Models; 
 

 

 

 

 
namespace SAIT_Electronics.Pages.Management 
 
{ 
 
    public partial class ManageProducts : System.Web.UI.Page 
 
    { 
 
     protected void Page_Load(object sender, EventArgs e) 
 
     { 
 
      if (!IsPostBack) 
 
      { 
 
       ImagesFolder(); 
 

 
       //check if the url contains an id parameter 
 
       if (!string.IsNullOrWhiteSpace(Request.QueryString["id"])) 
 
       { 
 
        int id = Convert.ToInt32(Request.QueryString["id"]); 
 
        FillPage(id); 
 
       } 
 
      } 
 
       
 
     } 
 

 

 
     protected void btnSubmit_Click(object sender, EventArgs e) 
 
     { 
 
      productmodel ProductModel = new productmodel(); 
 
      Product product = CreateProduct(); 
 

 
      //check if the url contains an id parameter 
 
      if (!string.IsNullOrWhiteSpace(Request.QueryString["id"])) 
 
      { 
 
       //id exist -> update existing row 
 
       int id = Convert.ToInt32(Request.QueryString["id"]); 
 
       lblResults.Text = ProductModel.UpdateProduct(id, product); 
 
      } 
 

 
      else 
 
      { 
 
       //id does not exist -> create a new row 
 
       lblResults.Text = ProductModel.InsertProduct(product); 
 
      } 
 
       
 
     } 
 

 
     private void FillPage(int id) 
 
     { 
 
      // get selected products from db 
 
      productmodel ProductModel = new productmodel(); 
 
      Product product = ProductModel.GetProduct(id); 
 

 
      //fill text boxes 
 
      txtDescription.Text = product.Description; 
 
      txtName.Text = product.Name; 
 
      txtPrice.Text = product.Price.ToString(); 
 

 
      //set dropdown list values 
 
      ddImage.SelectedValue = product.Image; 
 
      ddType.SelectedValue = product.TypeId.ToString(); 
 
     } 
 

 

 
     private void ImagesFolder() 
 
     { 
 
      try 
 
      { 
 
       //get all file paths 
 
       //string[] images = Directroy.GetFiles(Server.MapPath("~/Images/Products/")); 
 
       // string[] images = Server.MapPath(@"/Images/Products/"); 
 
       string[] images = System.IO.Directory.GetFiles(Server.MapPath("~/Images/Products/")); 
 
       // String images = new DirectoryInfo(@"D:\Desktop\Shoping\SAIT_Electronics\SAIT_Electronics\Images\Products\").Name; 
 

 
       //string[] images = Directory.GetFiles(("~/D:/Desktop/Shoping/SAIT_Electronics/SAIT_Electronics/Images/Products/"), "*.xml"); 
 
       //get all file names and add them to an arraylist 
 
       ArrayList imageList = new ArrayList(); 
 
       foreach (string image in images) 
 
       { 
 
        string imageName = image.Substring(image.LastIndexOf(@"\", StringComparison.Ordinal) + 1); 
 
        imageList.Add(imageName); 
 
       } 
 

 
       // set the array list as dropdwon views datasouce and refresh 
 
       ddImage.DataSource = imageList; 
 
       ddImage.AppendDataBoundItems = true; 
 
       ddImage.DataBind(); 
 
      } 
 

 
      catch (Exception e) 
 
      { 
 
       lblResults.Text = e.ToString(); 
 
      } 
 
     } 
 

 

 
     private Product CreateProduct() 
 
     { 
 
      Product product = new Product(); 
 

 
      product.Name = txtName.Text; 
 
      product.Price = Decimal.Parse(txtPrice.Text); 
 
      product.TypeId = Convert.ToInt32(ddType.SelectedValue); 
 
      product.Description = txtDescription.Text; 
 
      product.Image = ddImage.SelectedValue; 
 

 
      return product; 
 
     } 
 

 
     
 
    } 
 
}

+0

变化到产品 –

+0

您方法'model.GetProduct(ID)返回类型model.GetProduct(ID)的;'必须返回一个不同的类型(可能_product_,但不是这个)。在这里它是指向当前页面Product',所以改变类型或者用完整的命名空间来指定它。 –

+0

是的错误由此删除,但转换错误保持不变。 – Asif

回答

0

Product类型在此行

Product product = model.GetProduct(id); 

Product类你在里面,现在,这样SAIT_Electronics.Pages.Product。试试这个:

SAIT_Electronics.Product product = model.GetProduct(id); 

或简单:

var product = model.GetProduct(id); 

你应该做同样在ManageProducts.aspx.cs文件。无论您在何处定义Product类型的变量,都可以用SAIT_Electronics.Product替换Product。例如线39变为:

SAIT_Electronics.Product product = CreateProduct(); 

这同样适用于线61,106和108

+0

感谢Vicari您的快速回复...通过使用这些更改,我可以删除错误,但同样的错误.......“无法从'SAIT_Electronics.Pages.Product'转换为'SAIT_Electronics.Product'” – Asif

+0

你能告诉我哪一行给你错误吗? – themiurge

+0

如果你可以看到我上传的错误图像.......可能你可以理解 – Asif

相关问题