MVC4笔记 @functions @model @using

/////@functions自定义函数//////

@helper辅助方法的确可以很方便的完成辅助方法开发,不过却失去了一些弹性,例如,无法在@helper中自定义属性,只能单纯的传入参数,然后格式化成你想要的样子后直接输出,因此razor还提供了@functions自定义函数功能,能够让你用接近c#类别的方式进一步定义为更复杂的辅助方法。

必须先通过@functions定义出一个代码区块,然后把c#方法写在里面,如果该方法必须将执行结果回传到view页面上的话,则必须以IHtmlString型别回传。

用法实例。

@functions{

public IHtmlString GetYesterday(){

var theDay=DateTime.Now.Adds(-1);

return new HtmlString(theDay.ToShortDateString());

}

}

在与@functions同一个页里,就能使用@GetYesterDay()方法来执行,与@helper辅助类方法相同,如果希望在多个不同的view页面里使用这个@functions定义的方法, 可以将这段@functions声明移到app_code目录下的cshtml文件里,但是有一个小地方要注意,移过去的方法或者属性,必须声明为静态的才能让各页面取用,则变成

@functions{

public static  IHtmlString GetYesterday(){

var theDay=DateTime.Now.Adds(-1);

return new HtmlString(theDay.ToShortDateString());

}

}

/////@model引用参数资料型别/////

在razor页面可以在页面最上方通过@model语法设定一组view页面的强类型数据模型参考,套用了数据模型号,在这个view页面里就可以用具有型别的方式取用Model五件

语法声明范例:

@model IEnumerable

注意:@model语法的第一个字母是小写m,与Model实体要区分开来。

/////@using引用命名空间/////

在razor页面最上方可以通过@using引用这一个view页面里会用到的命名空间,以简化程序的长度,以上面@model的语法为例

eg:

@using MvcApplication6.Models

@model IEnumerable

在Views\web.config设定档,有个<节点system.web.webPage.razor>区段设定,底下有个<节点namespaces>区段设定了所有view页面都会引入的命名空间,如果大部分试图页面都要引入相同命名空间的话,可以在这里载入,就不用在每个页面上写了

时间: 2024-10-06 09:39:19

MVC4笔记 @functions @model @using的相关文章

MVC4 中的Model显示设置(含显示Shared/DisplayTemplates和编辑Shared/EditorTemplates)

虽然 [Display(Name="XXX")]已经能在页面中@Html.LabelFor(m=m.属性)中显示其值,但是不够灵活,特别是在@Html.EtitorForModel()或@Html.DisplayForModel()时,我们想要根据自己的要求来显示信息,那么我们就要根据情况 实现步骤如下: 1. 在View 下的shared文件夹下添加EditorTemplates文件夹 2.在EditorTemplates 添加视图(不继承任何模板)  如添加 视图 YesOrNo.

MVC4 笔记

1. Microsoft.Web.Helpers.UrlBuilder 2. Microsoft.Web.Mvc.AreaHelpers public static string GetAreaName(RouteBase route); public static string GetAreaName(RouteData routeData); 3 MVC4 笔记

MVC4笔记 Area区域

mvc4.0新增的area区域机制,可以协助你在架构较为大型的项目,让独立性较高的部分功能独立成一个MVC子网站,以降低网站与网站之间的耦合性,也可以通过area的切割,让多人同时开发同一个项目时候,能够减少互相冲突的机会. 在mvc专案中不能有两个同名的控制器,即使你有区分不同的命名空间可以正常编译,但实际上在运行时仍然出错,除非在app_start/RouteConfig文件中通过mapRoute方法新增网址路由的设置,并明确指定命名空间,才能让此功能正常运行. eg routes.MapR

MVC4笔记 view如何从action中取得数据

方式:1使用弱类型取,2,使用强类型,两者的差别在于view页面最上方声明的方式 如果使用弱类型接受来自控制器的数据,在view页面里完全不需要有任何的生命,数据可以从ViewData,ViewBag,TempData取得,在页面中可以通过@Model属性, 取得从Action传来的ViewData.Model数据模型.但是@Model数据类型将会是object,所以算是弱类型的传值方式. 如果使用强类型的话,必须在view页面第一行使用@model关键字引入一个view页面专用的数据模型 eg

【要什么自行车】ASP.NET MVC4笔记03:调用编辑器 kindeditor

参考:http://www.cnblogs.com/guzhongx/p/kindeditor.html 1.下载kindeditor,存放于Content文件夹下 <script src="~/Content/kindeditor/kindeditor-all.js"></script> 2.View <script> var editor; KindEditor.ready(function (K) { editor = K.create('te

【要什么自行车】ASP.NET MVC4笔记02:上传文件 uploadify 组件使用

参考:http://www.cnblogs.com/luotaoyeah/p/3321070.html 1.下载 uploadify 组件,copy至 Content文件夹 <link href="~/Content/uploadify/uploadify.css" rel="stylesheet" /> <script src="~/Content/uploadify/jquery.uploadify.js"></

MVC4笔记 RedirectResult,RedirectToRoute

RedirectResult:运行重新导向到其他网址,在RedirectResult的内部,基本上还是以Response.Redirect方法响应HTTP 302暂时导向. eg: public ActionResult Redirect() { return Redirect("/Home/NewIndex"); } 在mvc3版本之后,System.Web.Mvc.Controller类型还内建了一个RedirectPermanent辅助方法,可以让Action响应HTTP 301

MVC4 + EF为Model添加单独的验证属性

可使用以下方式给Model加上相关的meta验证属性,这样实体的验证属性就不会被例如EF或其他工具自动生成的Model所替换了. using System.ComponentModel.DataAnnotations; namespace IDO.Entities {  [MetadataType(typeof(CustomerMetadata))]  partial class Customer  {  } public class CustomerMetadata  {   [Require

Machine Learning课堂笔记之Model and Cost Function