2016-10-21 3 views
-1

Visual Studio 2015 Update 3で.NET Framework 4.6.1を使用してASP.NET MVCアプリケーションを開発しています。 Faker.Dataライブラリ(https://github.com/FermJacob/Faker.Data)開発中のデバッグモード用の偽データを生成する。 SQL Serverに存在する実際のデータを取得するまでには時間がかかることがあります。ASP.NET MVCビューのデータをデバッグ/リリースモードに基づいて変更します

ビューにこの偽のデータをデバッグモードで使用させる必要があります。このようなものをcshtmlビューファイルで使用してデータを切り替えることはできますか?

@model MyProject.DAL.Customer 

ありがとう:

#if DEBUG 
    // Point to fake data for this view 
#else 
    // Point to release data for this view 
#endif 

ビューは、現在、強く型付けされたモデルを提供するために、上部にこの文を持っています。 usualyが正しくかみそりでは動作しません

+1

データソースの選択は、コントローラに入れてビューに送信する必要があります。ビューには、データソースを選択するためのコードはありません。 – Ilnetd

+0

ありがとう、@Ilnetd。ダング、あなたが言ってくれるのではないかと恐れていた。私がそれを避けることを望んでいたのですが、MVCでは、あなたが説明したことが正しい方法です。 – Alex

答えて

2

プリプロセッサは、あなたがこの

@{ 
#if DEBUG 
    // Point to fake data for this view 
#else 
    // Point to release data for this view 
#endif 
} 

のようにそのコードを置くことができます。しかし、このコードは、期待される結果を返しません。あなたはこのようなHtmlHelperクラスの拡張子メソッドを定義することができ :終わり

public static bool IsDebugMode(this HtmlHelper htmlHelper) 
{ 
    #if DEBUG 
     return true; 
    #else 
     return false; 
    #endif 
} 

をあなたはこの1のようにかみそりの構文でその拡張子メソッドを呼び出すことができます。

@if(Html.IsDebugMode()){} 
1

HttpContext.Current.IsDebuggingEnabledあなたのビューで使用可能です。しかし、ビューから選択されているデータ/データソースではなく、コントローラからビューモデルを受け取る必要があります

1

#if DEBUGの代わりに[Conditional("DEBUG")]を使用することをおすすめします。何らかの種類のコンパイルエラーが発生する可能性があります。詳細はIf you're using “#IF DEBUG”, you're doing it wrongをご覧ください。これが役に立ちますようお願い致します...

関連する問題