Asp.net mvc 3 显示基于if逻辑的特定形式
我试图根据if语句显示一种形式与另一种形式。但当运行此命令时,两种形式都会显示,if语句本身也会显示为文本:Asp.net mvc 3 显示基于if逻辑的特定形式,asp.net-mvc-3,Asp.net Mvc 3,我试图根据if语句显示一种形式与另一种形式。但当运行此命令时,两种形式都会显示,if语句本身也会显示为文本: if(model.CarId == 0 || string.IsNullOrEmpty(model.Car)) { @using (Html.BeginForm("CarModels", "Users", FormMethod.Post, new { @model = Model })) { <p>Car Model @Html.TextBox
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>
}
}
if(model.CarId==0 | | string.IsNullOrEmpty(model.Car))
{
@使用(Html.BeginForm(“CarModels”,“Users”,FormMethod.Post,new{@model=model}))
{
Car Model@Html.TextBoxFor(Model=>Model.CarModel)
}
}
其他的
{
@使用(Html.BeginForm(“UpdateCar”,“Cars”,FormMethod.Post,new{@model=model}))
{
@Html.CheckBoxFor(model=>model.Name)名称
}
}
我知道我需要在if旁边加一个@,但是我试过了,然后当我这样做时,视图会对@if中的其余语法进行解释
更新
以下是最终奏效的方法:
@{
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>
}
}
}
@{
if(Model.CarId==0 | | string.IsNullOrEmpty(Model.Car))
{
使用(Html.BeginForm(“CarModels”,“Users”,FormMethod.Post,new{model=model}))
{
Car Model@Html.TextBoxFor(Model=>Model.CarModel)
}
}
其他的
{
使用(Html.BeginForm(“UpdateCar”,“Cars”,FormMethod.Post,new{model=model}))
{
@Html.CheckBoxFor(model=>model.Name)名称
}
}
}
您必须在if之前添加@,并在使用之前删除它,因为它仍然被视为代码而不是标记。请考虑如下更改代码:
@{
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>
}
}
}
@{
if(Model.CarId==0 | | string.IsNullOrEmpty(Model.Car))
{
使用(Html.BeginForm(“CarModels”,“Users”,FormMethod.Post,new{@model=model}))
{
Car Model@Html.TextBoxFor(Model=>Model.CarModel)
}
}
其他的
{
使用(Html.BeginForm(“UpdateCar”,“Cars”,FormMethod.Post,new{@model=model}))
{
@Html.CheckBoxFor(model=>model.Name)名称
}
}
}
“@{..}”块用于插入任意数量的代码行。当我使用它时,VS编辑器将不再识别模型类型。然后,在using语句的结束括号“}”必须取出Begin中的@for@模型之后,我还得到了一个错误“expected”)