2017-04-03 3 views
1

私はこの機能を作っています。私はRazorとC#で作業しています。私はこのようなサプライヤーをプリントアウトしていますidを含むelse文から印刷する

@{ 
    var pointShop = Model.Order.OrderLines[0]; 
    string supplier == null; 

    if (pointShop.SupplierId = 27942) { 
    supplier = "If any question, please contact us"; 
    } 
    else if (pointShop.SupplierId = 6543) { 
    supplier = "Please call us"; 
    } 
    else if (pointShop.SupplierId = 8723) { 
    supplier = "You are welcome to write us"; 
    } 
} 

<span> 
    @supplier 
</span> 

があるため、下記のいずれかの番号の仕入先を持っている場合、私は、仕入先をbelongsToのテキストをプリントアウトする必要があります私の注文では100%のIDが27942です。しかし、私はテキストのプリントアウトを取得していません。ちょうど空のフィールド。私がここで間違っていることは何ですか?

+0

これはASP.NET/Razorテンプレートであるはずですか? – UnholySheep

+1

'@ supplier'はあなたが必要とするものです – haim770

+1

if/elsesが' = 'という代入を使っているのか、' == 'でないのかを確認すると、何が起こっているのか疑問に思うでしょう。また、 'string supplier = string.Empty'を実行する必要があるかもしれませんが、現在はそれを比較して宣言していません。 – Bardicer

答えて

1

あなたは===を使用して見逃しています。

@{ 
    var pointShop = Model.Order.OrderLines[0]; 
    string supplier == null; 

    if (pointShop.SupplierId = 27942) { 
    supplier = "If any question, please contact us"; 
    } 
    else if (pointShop.SupplierId = 6543) { 
    supplier == "Please call us"; 
    } 
    else if (pointShop.SupplierId = 8723) { 
    supplier == "You are welcome to write us"; 
    } 
} 

この行を1行ずつ書きましょう。

string supplier == null; 

これはコンパイルしないでください。実際に実行していることがわかりません。

string supplier = String.Empty; 

またはあなたのif文であなたの等価性チェックで次にvar supplier = String.Empty;

あなたがやっているの割り当てではない:私はあなたが空の文字列varibleを作成しようとしていると思うが、それを行うための適切な方法はこれです評価。 =は代入==は評価です。中

声明pointShop.SupplierIdは、仕入先をevaulating、それが27942.に対する価値だチェックするのではなく、27942の値が割り当てられます場合

あなたが代わりに

if (pointShop.SupplierId == 27942) { 
    supplier = "If any question, please contact us"; 
    } 

必要です。

これらのすべては、デバッガであなたの剃刀のビューにブレークポイントを入れて、ステップインすることでチェックできます。がんばろう!

0

すべて同じ値をチェックしている場合は、スイッチ...ケースがクリーナーソリューションである可能性があります。その次のステップは配列かDictionary<int, string>です。 nullは任意の文字列と等しくないがそうであるように、

supplier == "Please call us"; 

これは常にfalseになります。

は、あなたが比較です演算子、というし、代入演算子を使用する場所を持っています。しかし、それは間違いです。コンパイラにはなんの意味もありません。

関連する問題