这是什么语法?

时间:2015-09-03 14:45:06

标签: asp.net-mvc

public class MyViewModelClass
{
   public string Name { set;get;}
} 

public ActionResult MyAction()
{
  return View(new MyViewModelClass());
}

@model MyViewModelClass
@using(Html.BeginForm())
{
  MyAction Name : @Html.TextBoxFor(s=>s.Name)
  <input type="submit" value="Generate report" />
}

有人能告诉我以下行是做什么的吗?:

MyAction Name : @Html.TextBoxFor(s=>s.Name)

好的,第一个单词只是指定要执行的操作,但我不知道为什么有人需要输入&#39; Name&#39;在这个表达式中,并用冒号跟随它。是的,我知道TextBoxFor的作用。

我之前在任何ASP.NET教程中都没见过这样的语法,也许你可以给我一些链接,我可以在其中找到更多关于它的信息。谢谢!

2 个答案:

答案 0 :(得分:4)

您所看到的是Razor语法,它允许您使用@字符在HTML中添加C#(或VB,具体取决于您使用的内容)代码。它还附带了许多有用的课程,例如您询问的HtmlHelper课程(详见下文)。

就这条线而言:

MyAction Name : @Html.TextBoxFor(s => s.Name)

MyAction Name :部分只会在HTML中打印"MyAction Name :"@Html.TextBoxFor(s => s.Name)部分使用System.Web.Mvc命名空间中TextBoxFor类的HtmlHelper方法为TextBox Name属性生成MyViewModelClass {1}}(在HTML标记中使用@model指令声明为视图的模型)。

我已经添加了一些链接,这些链接可以帮助您清楚地了解情况并立即加快速度。

答案 1 :(得分:1)

这是一个简单的字符串:

MyAction Name : @Html.TextBoxFor(s=> s.Name)

首先,您在结果中看到MyAction Name :,然后@Html.TextBoxFor(s=> s.Name)生成一个文本框。