2013-09-30 102 views
0

这是家庭作业,它是Visual Studio中使用C#的ASP.NET MVC应用程序。当我运行它时,错误说:“不能隐式地将类型'字符串'转换为'int',”参考下面这行:Manufacturer = collection [“Manufacturer”],Gears = collection [“Gears”],Frame = collection [ “Frame”],Gears = collection [“Gears”]下面有一条波浪线。Visual Studio中的错误:无法将类型'字符串'隐式转换为'int'

using MvcApplication3.Models; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MvcApplication3.Controllers 
{ 
    public class BikeController : Controller 
    { 
     // 
     // GET: /Bike/ 

     List<Bike> bikes; 


     public BikeController() 
     { 
      if (bikes == null) 
      { 
       bikes = new List<Bike> { 
       new Bike(), 
       new Bike { Manufacturer = "Nishiki", Gears = 5, Frame = "Road" } 
      }; 
      } 
     } 

     public ActionResult Index() 
     { 
      return View(this.bikes); 
     } 

     private ActionResult View(Func<object> func) 
     { 
      throw new NotImplementedException(); 
     } 

     // 
     // GET: /Bike/Details/5 

     public ActionResult Details(int id) 
     { 
      var currentBikes = bikes[id]; 
      return View(currentBikes); 

     } 

     // 
     // GET: /Bike/Create 

     public ActionResult Create() 
     { 
      return View(); 
     } 

     // 
     // POST: /Bike/Create 

     [HttpPost] 
     public ActionResult Create(FormCollection collection) 
     { 
      Bike b = new Bike 
      { 
       Manufacturer = collection["Manufacturer"], Gears = collection["Gears"], Frame = collection["Frame"] 
      }; 
      bikes.Add(b); 
      try 
      { 
       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 
     } 

     // 
     // GET: /Bike/Edit/5 

     public ActionResult Edit(int id) 
     { 
      return View(bikes.Where(b => b.BikeID == id).First()); 
     } 

     // 
     // POST: /Bike/Edit/5 

     [HttpPost] 
     public ActionResult Edit(int id, FormCollection collection) 
     { 
      try 
      { 
       // TODO: Add update logic here 

       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 
     } 

     // 
     // GET: /Bike/Delete/5 

     public ActionResult Delete(int id) 
     { 
      return View(); 
     } 

     // 
     // POST: /Bike/Delete/5 

     [HttpPost] 
     public ActionResult Delete(int id, FormCollection collection) 
     { 
      try 
      { 
       // TODO: Add delete logic here 

       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 
     } 

     public int bike { get; set; } 
    } 
} 
+1

你怎么_you_认为错误意味着什么? –

+0

我认为这意味着它拒绝了Gears的数据类型,这是一个int。 – Grafica

回答

0

您需要将字符串显式转换为int。

尝试以下行

Manufacturer = collection["Manufacturer"], Gears = int.Parse(collection["Gears"]), Frame = collection["Frame"] 
+0

工作。谢谢。我没有说Gears首先是一个整数。它是按照列表中的第一个元素进行的吗? – Grafica

+0

不,它与排序无关,但与数据类型有关。 – Tilak

+0

是的,但它为什么认为齿轮是一个字符串? – Grafica

相关问题