2016-10-25 6 views
-2

は、コントローラはモデルアイテムは、「MVC_Web_App.Models.Products」私はテストアプリケーション を設計しています

[HttpGet] 
    public ActionResult EditSingleProduct(string PrdNm) 
    { 
     try 
     { 
      List<Products> ProductGrid = new List<Products>(); 
      string UserAdded = Session["User"].ToString(); 
      SqlConnection Prodct = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()); 
      Prodct.Open(); 
      using (SqlCommand command = new SqlCommand("", Prodct)) 
      { 
       command.CommandText = "Select * from [Rush].[dbo].[Product] where ProductName='" + PrdNm + "'"; 
       SqlDataAdapter dataAdapter = new SqlDataAdapter(command); 
       DataSet dataSet = new DataSet(); 
       dataAdapter.Fill(dataSet); 

       DataTable dtTable = dataSet.Tables[0]; 
       foreach (DataRow dr in dtTable.Rows) 
       { 
        Products Prd1 = new Products(); 
        Prd1.ProductName = dr["ProductName"].ToString(); 
        Prd1.ProductType = dr["ProductType"].ToString(); 
        Prd1.ProductPrice = dr["ProductPrice"].ToString(); 
        Prd1.Quality1 = dr["Quality1"].ToString(); 
        Prd1.Quality2 = dr["Quality2"].ToString(); 
        Prd1.Quality3 = dr["Quality3"].ToString(); 
        ProductGrid.Add(Prd1); 
       } 


      } 
      return View(ProductGrid.ToList()); 
     } 
     catch (Exception ex) 
     { 
      return View(); 
     } 

    } 

あるタイプのものであり、表示がある

<title>EditSingleProduct</title> 

    @using (Html.BeginForm()) 
{@Html.TextBoxFor(Prd1 => Prd1.ProductName, new { @class = "form-control text-center", placeholder = "Product Name" })      @Html.ValidationMessageFor(Prd1 => Prd1.ProductName) 
@Html.TextBoxFor(Prd1 => Prd1.ProductType, new {@class = "form-control text-center", placeholder = "Product Type" })      @Html.ValidationMessageFor(Prd1 => Prd1.ProductType) 
@Html.TextBoxFor(Prd1 => Prd1.ProductPrice, new {@class = "form-control text-center", placeholder = "Product Price" })      @Html.ValidationMessageFor(Prd1 => Prd1.ProductPrice) 
@Html.TextBoxFor(Prd1 => Prd1.Quality1, new { @class = "form-control text-center", placeholder = "Specification-I" }) 
@Html.ValidationMessageFor(Prd1 => Prd1.Quality1) 
@Html.TextBoxFor(Prd1 => Prd1.Quality2, new { @class = "form-control text-center", placeholder = "Specification-II" }) 
@Html.ValidationMessageFor(Prd1 => Prd1.Quality2) 
@Html.TextBoxFor(Prd1 => Prd1.Quality3, new {@class = "form-control text-center", placeholder = "Specification-III" }) 
@Html.ValidationMessageFor(Prd1 => Prd1.Quality3) 
<input type="submit" id="Updatebtn" value="Update Product" class="btn" /> 

が、私はデータを取得することができません SQLがうまくいけば私は各ループのために要求された1つのアイテムを取得しています。私はちょうどそのデータでテキストボックスを埋めるしたい、ユーザーはテキストボックスを編集し、コードは正常に動作しています

+0

あなたのコードを正しくフォーマットして、質問にエラーメッセージの詳細を含めてください(そしてあなたのコレクションをビューに戻しましたが、ビューはコレクションではなく単一の 'Products'に基づいているように見えます) –

+1

ビューは '@model xxx'でなければなりません。xxxは' return View(xxx);内のビットのタイプと一致していなければなりませんエラーメッセージはそれらが同じではないことを伝えています –

答えて

0

単一のオブジェクト用に設計されたコレクションをビューに渡そうとしているようです。

+0

はい私は解決策を得ました – user3857870

+0

追加ビュー(ProductGrid.ToList()。FirstOrDefault()); – user3857870

関連する問題