2011-10-17 11 views
1

は、私はというエラーを取得しておきます。 Models.Product」MVCコントローラとリポジトリモデル

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"   Inherits="System.Web.Mvc.ViewPage<HomebaseSystemNew.Models.Product>" %> 

マイリポジトリ:

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using HomebaseSystemNew.Models; 

    namespace HomebaseSystemNew.Controllers 
    { 
    public class ProductRepository 
    { 

    public Product GetProductID(int Pid) 
    { 
     DatabaseLinkedDataContext db = new DatabaseLinkedDataContext(); 

     return db.Products.FirstOrDefault(ans => ans.Pid == Pid); 
    } 
    } 

マイコントローラー:

using System.Linq; 

using System.Web.Mvc; 

using HomebaseSystemNew.Models; 


namespace HomebaseSystemNew.Controllers 
    { 

    public class ProductsController : Controller 
{ 

     public ActionResult EditProduct(int id) 
     { 
      ProductRepository repo = new ProductRepository(); 

      repo.GetProductID(id); 

      return View(repo); 
     } 
    } 
+0

あなたは本当に多くを投稿する前に、いくつかの回答の受け付けを開始するべきである... – James

答えて

1

簡単なものは、モデル/クラスの正しいタイプを渡すだけです。あなたは間違いなくあなたが製品を渡したい場合は、代わりに...

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"   Inherits="System.Web.Mvc.ViewPage<HomebaseSystemNew.Controllers.ProductRepository>" %> 

を、その後ProductRepositoryモデルを渡すことにあなたの閲覧ページの最初の行を変更したい場合は、お使いのコントローラのアクションでそれを返す必要があります。 (あなたがしようとしている可能性が高い場合)

「継承」プロパティが、渡すモデルタイプで設定されていることに注意してください。あなたがいない製品のビューでリポジトリを戻ってきている

+0

彼の行動のコードに基づいて、私は彼の意図がビューに製品を渡すことだったと思う - ない彼リポジトリ全体。 –

+0

@JustinRusbatch:うん、私は私のポストでそのコメントをした。いずれにしても、なぜエラーが発生するのか説明することができます。これは、コードを修正するだけの便利な機能です) – musefan

6

);最高のちょうどコントローラクラスのためにそれを維持するために -

はまた、あなたは通常、あなたのコントローラフォルダにリポジトリを置くことを望んでいないことに注意してください。このように変更します。

var product = repo.GetProductID(id); 

return View(product); 
+0

さらに、 'Return View(repo.GetProductID(id));' – James

+0

@James、 –

+2

@James、またはさらに短く...返すView(new ProductRepository()。GetProductID(id)); ' ...多分、新しいProductRepository()。GetProductID(id));別の3文字を保存するためにリポジトリを静的にする必要がありますか? ;) – musefan