C# 方法名不能与其左括号分开 无法呈现 提供

C# 方法名不能与其左括号分开 无法呈现 提供,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,为什么我们不能将方法名与左括号分开,这样每个方法名都有自己的行 有没有办法绕过这个功能或者可能是一个bug?试试这个,告诉Razor整个过程都是一个代码块 您的姓名:@Html.TextBoxFor x=>x.Name这是因为您位于模板中,而不是*.cs文件中。MVC使用的模板呈现引擎Razor对模板进行解析,提取出与代码相似的文本片段并执行这些文本片段,但它并不完美,而且它不能始终捕获所有场景 特别是,在这里,方法调用前的@prefix告诉Razor读取,直到调用字符串结束,即使用,或者直到它

为什么我们不能将方法名与左括号分开,这样每个方法名都有自己的行


有没有办法绕过这个功能或者可能是一个bug?

试试这个,告诉Razor整个过程都是一个代码块

您的姓名:@Html.TextBoxFor
x=>x.Name

这是因为您位于模板中,而不是*.cs文件中。MVC使用的模板呈现引擎Razor对模板进行解析,提取出与代码相似的文本片段并执行这些文本片段,但它并不完美,而且它不能始终捕获所有场景


特别是,在这里,方法调用前的@prefix告诉Razor读取,直到调用字符串结束,即使用,或者直到它到达行的末尾。因为它从未在线路上获得完整的调用字符串,所以它失败了。

为什么?Razor是关于在HTML和C之间导航的,它必须考虑到空格。我相信您可以在ASPX中执行此操作。对不起,这应该被视为bug吗?不,这不是bug。这就是Razor和其他模板渲染引擎的工作原理。不同之处在于,在这里,可执行代码必须从纯文本源解析出来,而在*.cs文件中,则全部是代码。这意味着您无法在Razor视图中执行所有您可能喜欢的格式设置。有时候,你会遇到这种事情固有的局限性。
    <p>
        Your name: @Html.TextBoxFor
        (x => x.Name)
    </p>
    <p>
        Your name: @Html.TextBoxFor(
        x => x.Name)
    </p>