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教程中都没见过这样的语法,也许你可以给我一些链接,我可以在其中找到更多关于它的信息。谢谢!
答案 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)
生成一个文本框。