C# Razor中的string.Format与string.Format

C# Razor中的string.Format与string.Format,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,我必须在视图中输出员工的姓名和部门,如欢迎“员工”加入“部门”。我正在使用string.Format()。 我在玩String.Format和String.Format()时看到了以下内容。有人能解释一下为什么string.Format()不起作用,或者我在代码中遗漏了什么吗?我在网上阅读,看到string.Format()和string.Format()给出了相同的结果 不起作用- <div> <div> Welcome </div> <d

我必须在视图中输出员工的姓名和部门,如欢迎“员工”加入“部门”。我正在使用string.Format()。 我在玩String.Format和String.Format()时看到了以下内容。有人能解释一下为什么string.Format()不起作用,或者我在代码中遗漏了什么吗?我在网上阅读,看到string.Format()和string.Format()给出了相同的结果

不起作用-

<div>
  <div> Welcome </div>
    <div>
       @if(employee != null)
       {
           @string.Format("{0} at {1}", employee.name, emp.dept)
       }
    </div>
</div>

欢迎
@if(employee!=null)
{
@string.Format({1}{0}),employee.name,emp.dept)
}
错误-在“@”字符后出现意外的“字符串”关键字。一旦进入代码内部,就不需要在“string”之类的构造前面加“@”前缀

有效

<div>
  <div> Welcome </div>
   <div>
     @if(employee != null)
     {
        @(string.Format("{0} to {1}", employee.name, emp.dept))
     }
   </div>
</div>

欢迎
@if(employee!=null)
{
@(string.Format(“{0}到{1}”,employee.name,emp.dept))
}
有效

<div>
   <div> Welcome </div>
     <div>
        @if(employee != null)
        {
            @String.Format("{0} at {1}", employee.name, emp.dept)
        }
   </div>
</div>

欢迎
@if(employee!=null)
{
@String.Format({1}{0}),employee.name,emp.dept)
}

该消息是不言自明的。只需删除已在代码块中的
@
就可以了,因此它只是
字符串。格式(…)
这是一个已知的错误。请看这里:至于原因-Razor将
string
识别为关键字,但不是
string
@Steve-关闭为两篇文章的重复“C#中
@
的含义”和“@string.Format在Razor中不起作用”。并不是说“MVC4剃须刀中可能出现的突破性变化…”可能是更好的复制品,但是在C#的上下文中,
@string
/
@string
对应地引用了名为
string
/
string
的变量-因此导致了非常奇怪的行为。@StephenMuecke-我不会说消息是自解释的-正确的错误(事实上是自解释的)是正确的“名称‘string’在当前上下文中不存在”(这类代码的常规C#错误),这是C#/Razor语法的混合,并且有几个类似的奇怪情况。消息是不言自明的。只需删除代码块中已经存在的
@
,这样它就是
string.Format(…)
这是一个已知的bug。请看这里:至于原因-Razor将
字符串
识别为关键字,但不是
字符串
@Steve-关闭以复制两篇文章“C#中
@
的含义”和“@string.Format在Razor中不起作用”。而不是“MVC4 Razor中可能出现的破坏性更改…”。。。“可能是更好的复制,但在C#的上下文中,
@string
/
@string
;如本文所示,相应地引用名为
string
/
string
的变量-从而导致非常奇怪的行为。@StephenMuecke-我不会说该消息是自解释的-更正错误。”(事实上,这是不言自明的)可能是“名称‘string’在当前上下文中不存在”(这类代码的常规C#错误),这是C#/Razor语法的混合,并且有一些类似的奇怪情况。