混合使用C#和HTML Helper标记

时间:2013-02-27 07:45:30

标签: c# asp.net-mvc razor html-helper

我需要使用IF-ELSE条件来检查此人是否已命名为Perry。如果是这样,我需要执行IF语句,否则如果人名不是Perry,那么我将执行else块。

即使他们说我们可以将C#HTML helper标签混在一起,但我无法使用IF-ELSE条件。 IF-ELSE显示为文本。我该如何更正我的代码?

if(person == "Perry") 
{
    <div class="content">
    @using (Html.BeginForm("Go", "MyPro", new { }, FormMethod.Post, new { }))
    {
         @Html.TextBoxFor(mod => mod.id, new { id = "nameid" }) 
         <input type="text" id="name" name="name" /> 
         <input type="submit" value="send" class="send"/>    
        </div>
   }
}else {
    <div class="content1">
        @using (Html.BeginForm("Come", "MyPro", new { }, FormMethod.Post, new { }))
        {
            @Html.TextBoxFor(mod => mod.id, new { id = "schoolid" }) 
            <input type="submit" value="Send School" class="submitschool"/>
        }
    </div>
}

2 个答案:

答案 0 :(得分:4)

只需将@放在HTML标记中的C#代码之前,就是所有......

@{var person = "text";}

@if(person == "Perry") 
{
    <div class="content">
        @using (Html.BeginForm("Go", "MyPro", new { }, FormMethod.Post, new { }))
        {
            @Html.TextBoxFor(mod => mod.id, new { id = "nameid" }) 
            <input type="text" id="name" name="name" /> 
            <input type="submit" value="send" class="send"/>    
        }
    </div>
}
else 
{
    <div class="content1">
        @using (Html.BeginForm("Come", "MyPro", new { }, FormMethod.Post, new { }))
        {
            @Html.TextBoxFor(mod => mod.id, new { id = "schoolid" }) 
            <input type="submit" value="Send School" class="submitschool"/>
        }
    </div>
}

RAZOR SYNTAX EXAMPLES

答案 1 :(得分:0)

需要在@前添加if,否则Razor视图引擎不知道您要切换到“代码模式”。