Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 显示基于if逻辑的特定形式_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 显示基于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语句显示一种形式与另一种形式。但当运行此命令时,两种形式都会显示,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中的其余语法进行解释

更新

以下是最终奏效的方法:

@{
    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”)