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>
}
}
}
これを使用すると、VSエディタでモデルタイプが認識されなくなります。 "}" " – PositiveGuy
私の最後のコメントを解決したと思います – PositiveGuy
BeginFormの@modelのために@を取らなければならなかった – PositiveGuy