剃刀要求; 在做什么时使用(Html.BeginForm())

Omu*_*Omu 6 asp.net-mvc razor asp.net-mvc-3

@using(Html.BeginForm()){
Name:
    @Html.TextBoxFor(o => o.Name)
        <input type="submit" value="submit" />
    }
Run Code Online (Sandbox Code Playgroud)

这给出了错误CS1002 :; 预期

如果我删除名称,它的工作原理:

或者如果我这样做:

<form action="@Url.Action("AddHuman")" method="post">
Name:
    @Html.TextBoxFor(o => o.Name)
        <input type="submit" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

Bri*_*all 17

问题很可能与你的Name:文字有关.由于您位于代码块内,因此Razor假定下一行是代码行.您可与前面加逃离这个Name:@:或用其包装<text></text>.文本标记对于Razor是特殊的,并且在视图引擎解析时将被删除.

<input>没关系的原因是Razor认识到它是一个标记标记并将其写入响应流,Name:因为它不能假设它不是一个实际的标记标记.