2017-01-09 13 views
0

.NET MVCアプリケーションの既存のコードで作業するように求められましたが、新しいページを追加する必要があります。私はこれをしましたが、問題があります。.NET MVC Controllerビューがロードされていません

アプリケーションの共通レイアウトは、_Layout.cshtmlページで定義されています(新しいページには同じレイアウトを使用する必要があります)。パスはViewstart.cshtmlページにあります。

これは、既存のページがどのように動作するかです: コントローラはこのコードを持っています

public ViewResult Index() 
{ 
    TransactionHistoryViewModel model = new TransactionHistoryViewModel(); 
    model.SearchType = "TransactionHistory"; 
    return View(model); 
} 

コードは、すぐ上の行を実行した後、それは次のように_ViewStart.cstmlのファイルに進みと実行、実行された場合:

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

しかし、私は、私が作成したコントローラの同じロジック(私はすでにモデルを設定している)を使用してみてください:

public ViewResult Index() 
{ 
    TransportPlannerViewModel model = new TransportPlannerViewModel(); 
    model.SearchType = "TransportPlanner"; 
    return View(model); 
} 

コードは上記のブロックの後で実行を停止し、_ViewStartファイルに移動しません(ブレークポイントを使用してこれを認識しました)。

私の雇用者は、既存のコードとの一貫性を保つために必要なので、元のコーディングスタイルに固執しようとしました。これは間違ったモデルマッピングやセットアップで問題になることはありますか?

+0

エラーが発生しましたか。ルーティングコード –

+0

がパスの問題のようです:〜/ Views/Shared/_Layout.cshtml。パスが正しいかどうかを確認してください。 – Maharshi

+2

ビューにコードを表示します。たぶんあなたが失敗している、または何かがnullなどの何らかのロジックチェックを行っているかもしれません... –

答えて

0

同じコントローラーに2つのpublic ViewResult Index()がある場合、それは機能しません。どのメソッドのシグネチャを選択するかは、アプリケーションが同一であるため混乱します。

あなたはTransportPlannerViewModelコードを別個のコントローラに入れてください。これは、そのコントローラに関連付けられた別のView Folderを指している必要があります。

すなわち。最初のコードブロックのコントローラがTransactionHistoryの場合、Views \ TransactionHistory \ Index.cshtmlのビューを検索します。

デフォルトでは、Views \ ControllerName \ ActionName(methodName)のパターンを使用してビューを検索します。だから、それはあなたの他の方法のために働くことを得るために

、私はあなたが正しくやろうとしているものを理解していれば、あなたはそれがビューの下であなたのビューを探します、TransportPlannerのコントローラーを持っている必要があります\ TransportPlannerの\インデックス.cshtml

これがあなたがしたいことではない場合は、明確にしてください。

+0

お返事ありがとうございます。いいえ、TransportPlannerControllerとTransactionHistoryControllerの2つのコントローラがあります(これはコードが私に渡された時点で既に存在していて、正常に動作しています)。 – doodles

+1

動作していないビューにもレイアウトファイルへの参照がありますか?すなわち、 - > @ { レイアウト= "〜/ Views/Shared/_Layout.cshtml"; } – MikeDub

+0

はい、あります。私はそれを正確に働いているものに複製しました。違いは、作成したビューの別のテーブルからデータを取得しようとしました(明らかに、他のテーブルの列に対応するプロパティを使用して、新しいモデルを作成する必要がありました)。私は仕事を中止したので、今すぐビューのコードを投稿することができません。 – doodles

関連する問題