您的位置:首页 > 编程语言 > ASP

ASP.NET-Razor语法03

2016-03-24 09:29 549 查看
ASP.NET MVC中使用Razor语法 @{}

@{
string s ="super xiao lizi";
@s; // 里面的这个@代表着在页面上输出这个s // 我记得实际是给了Response.write方向
}


@Section的用法

1.在页面中这样写一个@Section

@section name{ // 注意section是小写的
<style>
....
</style>
}




2.在模板页layout中这样写,就可以包含前台的中定义的@Section xxx代码

@RenderSection("name",required :false)


@RenderSection("scri",required :false)


和RenderBody(内容主题)和RenderPage(部分页)是有区别的

<!DOCTYPE html>

<html>

<head>

<title>@ViewBag.Title</title>

<link href="@Url.Content("~/Content/Site。css")" rel="stylesheet" type="text/css"/>

<script src="@Url.Content("~/Scripts/jquery-1.4.4.min。js")" type="text/javascript"></script>

@RenderSection("head", required:true)@*View页面自定义特定js/css使用*@

</head>

<body>

@RenderPage("~/Views/Shared/_Header.cshtml")

@RenderBody()

</body>

</html>


Model中的限定特性

[Required]
[StringLength(100,ErrorMessage="{0} 必须至少包含 {2} 个字符。",MinimumLength=6)]
[DataType(DataType.Text)]
[Display(Name="新闻标题")]


在方案中另设置了一个类,有
publicclass logAction :ActionFilterAttribute
{public string ActionMessage{ get;set;}}


那么在controller中,可以用 [ ] 来初始化这个类,这个特性相当于构建了一个匿名方法了

[logAction(ActionMessage="用户信息")]

publicActionResultUserIndex()

{XXXXX}


Model类的属性中可以设置的特性有

[Required]
[StringLength(100,ErrorMessage="{0} 必须至少包含 {2} 个字符。",MinimumLength=6)]
[DataType(DataType.Password)]
[Display(Name="新密码")]


ASP.NET MVC5中如何访问直接访问HTML文件



在MVC中想访问html文件的话,就把html页面放在根目录下面

MVC的router网页路径和WEB FORM不一样

MVC里面的/就代表网站的根目录
而web form需要从当前路径往上找

Razor中前台的变量名和后台的变量名要一样





ASP.NET MODEL传回到controller
假如传回来的是model,那么放在action类名后的哪里都是一样的,不分前后,MVC都能智能的找到它



ViewBag页面传值
ViewBag属于页面传值,后台的Action方法可以传值到前台的页面,但仅仅是一个页面,再跳转就没有了



ASP.NET MVC5自带的错误
下面的这个是MVC5框架自带的错误,Error后面加一个空格就行了









JS对象与ASP.NET controller传过来的model对象传值
用这种方法给当前的Model赋值是不行的



但是,反过来是可以,比如把model赋给一个js对象

<script>
var obj = '@model.obj';
</script>


6种官方定义的返回结果(当然还可以自己定义)

1.ViewResult

2.EmptyResult

3.RedirectResult

4.RedirectToRouteResult

5.JsonResult

6.ContentResult

还可以自定义actionResult的返回类型

Razor对URL增强了

以前需要这样写

<script src="@Url.Content("~/Script/site.js")"></script>

现在仅需要这样写就行了,因为Razor可以正常的解析 ~/

<script src = "~/Script/site.js"></script>

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: