繁体   English   中英

无法从T1转换为T2

[英]Cannot convert from T1 to T2

我正在尝试显示从〜/ folder / pages到根页面名称产品的选定项目,在asp.net 2015中,我已经在页面中显示了所有项目,但是当我调用模型类时出现错误“ cannot implicitly convert type ”以及一些错误,例如

错误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(); } } } } 

这是附加的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; } } } 

此行中的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行也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM