方法名称不能与其左括号分开

kis*_*pit -1 c# asp.net-mvc razor

无法渲染

    <p>
        Your name: @Html.TextBoxFor
        (x => x.Name)
    </p>
Run Code Online (Sandbox Code Playgroud)

渲染

    <p>
        Your name: @Html.TextBoxFor(
        x => x.Name)
    </p>
Run Code Online (Sandbox Code Playgroud)

为什么我们不能将方法名称与左括号分开,(以便每个都有自己的行?

是否有一个技巧可以绕过这个功能(或可能是一个错误)?

Chr*_*att 5

这是因为您在模板中而不是*.cs文件中.Razor是MVC使用的模板渲染引擎,它解析模板以提取看起来像代码的文本并执行它们,但它并不完美,并且它不能总是捕获每个场景.

特别是,这里,@直接在方法调用之前的前缀告诉Razor读取,直到调用字符串结束,即使用),或直到它到达行的末尾.因为,它永远不会在线上获得完整的调用字符串,它会失败.