2012-03-27 9 views
0

if文に応じて、あるフォームと他のフォームを表示しようとしています。これは実行時に文自体ではなく、リテラルテキストを表示されている場合でも、両方の形が表示され、また:Show論理に基づく特定のフォーム

if(model.CarId == 0 || string.IsNullOrEmpty(model.Car)) 
{ 
    @using (Html.BeginForm("CarModels", "Users", FormMethod.Post, new { @model = Model })) 
    { 
     <p>Car Model @Html.TextBoxFor(model => model.CarModel)</p> 
     <p><input type="submit" value="Find Model" /></p> 
    } 
} 
else 
{ 
    @using (Html.BeginForm("UpdateCar", "Cars", FormMethod.Post, new { @model = Model })) 
    { 
     <p>@Html.CheckBoxFor(model => model.Name) Name</p> 

     <p><input type="submit" value="Update" /></p> 
    }       
} 

私は場合に次の@を必要と知っているが、それを試してみましたが、残りについて、ビューのcoplains私がそれをするとき@ifの中の構文。

UPDATE

ここでは、最終的に働いたものです:それはまだコードの代わりに、マークアップと見なされるよう

@{ 
    if (Model.CarId == 0 || string.IsNullOrEmpty(Model.Car)) 
    { 
     using (Html.BeginForm("CarModels", "Users", FormMethod.Post, new { model = Model })) 
     { 
      <p>Car Model @Html.TextBoxFor(model => model.CarModel)</p> 
      <p><input type="submit" value="Find Model" /></p> 
     } 
    } 
    else 
    { 
     using (Html.BeginForm("UpdateCar", "Cars", FormMethod.Post, new { model = Model })) 
     { 
      <p>@Html.CheckBoxFor(model => model.Name) Name</p> 

      <p><input type="submit" value="Update" /></p> 
     } 
    } 
} 

答えて

0

は、このようなコードの変更を検討:

@{ 
    if (Model.CarId == 0 || string.IsNullOrEmpty(Model.Car)) 
    { 
     using (Html.BeginForm("CarModels", "Users", FormMethod.Post, new { @model = Model })) 
     { 
      <p>Car Model @Html.TextBoxFor(model => model.CarModel)</p> 
      <p><input type="submit" value="Find Model" /></p> 
     } 
    } 
    else 
    { 
     using (Html.BeginForm("UpdateCar", "Cars", FormMethod.Post, new { @model = Model })) 
     { 
      <p>@Html.CheckBoxFor(model => model.Name) Name</p> 

      <p><input type="submit" value="Update" /></p> 
     } 
    } 
} 

「@ {..}」ブロックは、コード行の任意の数を挿入するために使用されます。

+0

これを使用すると、VSエディタでモデルタイプが認識されなくなります。 "}" " – PositiveGuy

+0

私の最後のコメントを解決したと思います – PositiveGuy

+0

BeginFormの@modelのために@を取らなければならなかった – PositiveGuy

2

あなたが、もし前に@を追加し、使用する前に、それを削除する必要があります。

+0

マークアップがまだ文句を言うことはありません – PositiveGuy

関連する問題