asp.net-mvc – MVC @model的含义
在MVC5中,@ model,@ html和@using是什么意思,为什么以及何时我们通常使用(@)以及哪个词跟随它?
例如:@model MVC_Project2.Models.stufftable写在re.cshtml页面的第一页 @using (Html.BeginForm()) { <div> @Html.LabelFor(u => u.stuffname) @Html.TextBoxFor(u => u.stuffname) </div> <div> @Html.LabelFor(u => u.stuffpass) @Html.PasswordFor(u => u.stuffpass) </div> <input type="submit" /> } 解决方法
在.cshtml文件中,其中的所有内容都是HTML.因此它将完全按照其书面形式写出来.
换句话说,如果你只是输入 model blah 没有@ then,当你渲染视图时,它实际上会在页面上显示模型blah. @符号是一个指令,告诉Razor引擎接下来是代码,它应该编译它而不是简单地将它写入输出. 所以当你打字 @model blah 这是由razor编译的,并且告诉Razor引擎模型的类型是’blah’,因此当你使用关键字Model时(注意大写字母M,你也必须使用@符号)它会引用到您定义的模型(在本例中为blah). 所以,如果你写 @model blah @Model.Foo 然后,如果blah.Foo包含数字14,它会将数字14写入输出.正如你可能推测的那样,@符号有很多用途,所以如果你说@ Model.Foo你实际上在做类似Response.Write(Model.Foo)的事情. 一般来说,@符号用于从HTML模式转换到代码模式,就像使用旧的ASPX代码块一样<%...%>但是razor更聪明一点并理解上下文你的代码,所以它可以推断你的代码在大多数时间结束的位置,所以没有必要像过去那样有一个结束括号. @using就像在C#代码中一样,它是在块结束后处理一次性资源的using语句.在许多情况下,Razor使用这种技术来表示代码块的结束.所以,比如说: @using(Html.BeginForm()) { .... } Html.BeginForm帮助器返回一个定义IDisposable接口的对象,当using语句结束时会调用该接口,因此在这种情况下BeginForm()输出一个< form> tag,当在using语句的末尾调用IDisposable.Dispose()方法时,它输出< / form>.这是一种技术,用于包装输出标签的其他代码,以便它可以正确关闭他们的HTML. @Html也只是C#.但是,它调用了HtmlHelper对象(Razor在“ViewPage”类中定义了一个名为Html的对象,它支持视图,这个Html对象是HtmlHelper类型),它调用了在HtmlHelper对象上定义的各种C#扩展方法.如果你不知道C#扩展方法是什么,它是一种扩展对象而不必重写那些对象的方法,这是更高级的C#.可以这么说,像@ Html.TextBox()之类的东西调用HtmlHelper.TextBox()类型的方法,所以它只是一个你可以调用的C#方法,但是这些方法是专门创建的帮助你创建HTML的方法. 这真的有很多,如果你不理解我讨论过的概念,那么你真的需要了解更多有关C#和/或HTML的知识,因为你可能已经开始了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用AppFabric缓存在MVC SessionState中使用
- asp.net-mvc – ASP.NET MVC – 结合Json结果与ViewResult
- asp.net – Web.Debug.config没有将连接字符串转换为MVC 5项
- asp.net-mvc – 如何首先使用EF核心代码创建连接表
- asp.net – 无法为网站禁用SSL
- asp.net – 在asp:GridView中插入隐藏列但仍然可用的客户端
- asp.net – 什么是DefaultWsdlHelpGenerator.aspx?
- asp.net-mvc-3 – 在asp.net MVC3.0中创建GridView
- asp.net-mvc-5 – Windows身份验证在ASP.NET MVC 5网络应用
- 使用AspNetPager与GridView完成分页
- asp.net – 在web.config下为url重写的多个外部文
- 捆绑和分组 – MVC 6中的捆绑和分类
- asp.net-mvc – 带图像托管的富文本编辑器
- asp.net – 身份使用Web API授权属性角色
- asp.net-mvc – 我的字体没有在print preview st
- asp.net – 请求Facebook访问令牌时400错误请求
- asp.net-mvc-4 – 从数据库上传模型时丢失dataAn
- 谈谈你最熟悉的System.DateTime[上篇]
- asp.net-core – .NET Core与ASP.NET Core
- asp.net-mvc – 在OnActionExecuting事件中更改模