alp*_*pha 12 razor asp.net-mvc-4
新手到ASP.net MVC 4并尝试理解Razor.如果我想在我的.cshtml页面中显示一些文本,我可以使用
<label class="LabelCSSTop">Introduction</label>
Run Code Online (Sandbox Code Playgroud)
或者我应该使用:
@Html.Label("STW", htmlAttributes: new { @class = "LabelCSSTop" })
Run Code Online (Sandbox Code Playgroud)
不确定一个是否优先于另一个或两者是否正常.如果后者发出标签标签,我应该坚持前者吗?
同样,如果我只是想显示一个文本框,我可以这样做:
<input id="txtName" type="text" />
或者我应该这样做:
@Html.TextBox("txtName", "")
我是否应该在常规html标签上使用@Html?
提前致谢!!
Tim*_*ora 13
对于您的标签代码段,它并不重要.我会选择更简单的语法(纯HTML).
大多数辅助方法也不允许您包围另一个元素.选择使用/不使用时,这可能是一个考虑因素.
但是,值得注意的是,您使用@Html.[Element]For<T>()获得重要功能的方法.请注意方法名称末尾的"For".
例:
@Html.TextBoxFor( o => o.FirstName )
Run Code Online (Sandbox Code Playgroud)
这将根据对象层次结构(对模型绑定至关重要)处理ID /名称创建.它还将添加不显眼的验证属性.这些方法将Expression作为参数,它引用模型中的属性.这个属性的元数据是由MVC框架获得的,因此它"知道"更多关于属性的信息,而不是它的字符串 - 参数对应物.
它还允许您以强类型方式处理UI代码.Visual Studio将突出显示语法错误,而使用字符串则无法突出显示语法错误.视图也可以选择与解决方案一起编译,允许进行额外的编译时检查.
有时,HTML帮助程序方法还会执行其他有用的任务,例如,Html.Checkbox并且Html.CheckboxFor还会创建一个隐藏字段以与复选框一起使用.另一个例子是路由感知的与URL相关的方法(例如用于超链接).
<!-- bad -->
<a href="/foo/bar/123">my link</a>
<!-- good -->
@Html.ActionLink( "my link", "foo", "bar", new{ id=123 } )
<!-- also fine (perhaps you want to wrap something with the anchor) -->
<a href="@Url.Action( "foo", "bar", new{ id=123 } )"><span>my link</span></a>
Run Code Online (Sandbox Code Playgroud)
使用纯HTML和代码时,只要呈现视图就必须执行代码,这会带来轻微的性能优势,尽管这不应该是决定因素.
| 归档时间: |
|
| 查看次数: |
98607 次 |
| 最近记录: |