自动using和Layout
一、自动using
1、 Model 文件夹添加 Person类,在view文件夹下web.config文件,将namespace加入,cshtml文件就不需要添加@model引用;

二、layout
1、 @RenderBody()渲染正文部分; cshtml的layout属性设置layout页面地址; @RenderSection("header")用于渲染具体页面中用 @section header{}包裹的内容,若果header是可选的,那么使用@RenderSection("footer", false),可以用IsSectionDefined("header")实现“如果没定义则显示****”的效果。
<body>
<div>
@RenderSection("header") <!--给子页面挖坑头部-->
@RenderBody() <!--子页面显示内容-->
@RenderSection("footer", false) <!--给子页面挖坑底部,false表示可填可不填--> <!--如果子页面定义了"Sec1",则挖坑,没有定义则显示默认内容-->
@if (IsSectionDefined("Sec1"))
{
@RenderSection("Sec1")
}
else
{
<text>这是默认的内容</text>
}
</div>
</body>
<body>
<!--填坑头部-->
@section header
{我是头部 }
@{
Person p1 = new Person();
}
<!--填坑底部-->
@section footer
{我是底部 } @section Sec1
{这个坑我来填 } </body>
2、 可以在Views文件夹下建立一个_ViewStart.cshtml文件,在这个文件中定义Layout,这样不用每个页面都设定Layout,当然每个页面可以通过设定layout属性来覆盖默认的实现;
3、 在子页面设置ViewBag.title内容,Layout页面用@ViewBag.title获取到
4、 @Html.DropdownList 辅助方法
(1)
public ActionResult Index()
{
List<Person> list = new List<Person>();
list.Add(new Person { Name = "chen", Age = , Id = });
list.Add(new Person { Name = "wang", Age = , Id = });
list.Add(new Person { Name = "li", Age = , Id = });
list.Add(new Person { Name = "liu", Age = , Id = }); return View(list);
}
public class Person //类
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
@model List<Person>
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<select>
@foreach (Person p in Model)
{
<option selected="@(p.Id==1)" >@p.Name</option>
}
</select> </body>
</html>
(2)使用@Html.DropDownList 显示下拉框,@Html.ListBox 用法一样
@model IEnumerable<SelectListItem>
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>DDL1</title>
</head>
<body>
@Html.DropDownList("pid",Model) </body>
</html>
public ActionResult DDL1()
{
List<Person> list = new List<Person>();
list.Add(new Person { Name = "chen", Age = , Id = });
list.Add(new Person { Name = "wang", Age = , Id = });
list.Add(new Person { Name = "li", Age = , Id = });
list.Add(new Person { Name = "liu", Age = , Id = }); //方式一
List<SelectListItem> slist = new List<SelectListItem>();
foreach (var p in list)
{
SelectListItem listItem = new SelectListItem();
listItem.Selected = (p.Id == );
listItem.Text = p.Name;
listItem.Value = p.Id.ToString();
slist.Add(listItem);
} //方式二:linq
var sList2 = from item in list
select new SelectListItem { Selected = item.Id == , Text = item.Name, Value = item.Id.ToString() };
//方式三
SelectList selectList = new SelectList(list, "Id", "Name");
ViewBag.selectlist = selectList;
//@Html.DropDownList("pid", (SelectList)ViewBag.selectlist)
return View(slist);
}
三、判断是否来自Ajax请求:
public ActionResult Ajax1()
{
return View();
} public ActionResult Ajax2()
{
var p = new { Name = "chen", Age = }; if(Request.IsAjaxRequest())
{
return Json(p);
}
else
{
return Content("没有权限");
}
}
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(function () {
$("#btn1").click(function () {
$.ajax({
url: "/Test/Ajax2",
type: "post",
datatype: "json",
success: function (res) {
alert(res.Name);
},
error: function () {
alert("错误");
}
});
});
}); </script>
自动using和Layout的更多相关文章
- salesforce零基础学习(九十四)classic下pagelayout引入的vf page弹出内容更新此page layout
我们在classic环境中,有时针对page layout不能实现的地方,可以引入 一个vf page去增强标准的 page layout 功能,有时可能要求这个 vf page的部分修改需要更新此 ...
- 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...
- 2014 年最热门的国人开发开源软件TOP 100
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外认可.中国是开 ...
- salesforce 零基础学习(二十)简单APP制作
本篇参考链接:https://developer.salesforce.com/trailhead/project/salesforce_developer_workshop 本篇讲述的是最简单的AP ...
- 2014年国人开发的最热门的开源软件TOP 100
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...
- Pro ASP.NET MVC –第五章 使用Razor
Razor是微软在MVC3中引入的视图引擎的名字,在MVC4中对其进行了改进(尽管改动非常小).视图引擎处理ASP.NET内容.寻找指令,典型地用于插入动态数据并输出到浏览器中.微软维持了两个视图引擎 ...
- ExtJs特点、优缺点及注意事项
摘自:ExtJs特点.优缺点及注意事项 1.什么是ExtJs?ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的 ...
- 转:C# 使用NLog记录日志
原文:http://www.cnblogs.com/felixnet/p/5498759.html NLog是一个记录日志组件,和log4net一样被广泛使用,它可以将日志保存到文本文件.CSV.控制 ...
- C# 使用NLog记录日志
NLog是一个记录日志组件,和log4net一样被广泛使用,它可以将日志保存到文本文件.CSV.控制台.VS调试窗口.数据库等.最近刚用到这个组件,觉得不错,水一篇. 下载 通过Nuget安装NLog ...
随机推荐
- EF 连接数据库 Mysql (database first ) 一个表对应一个模型
准备工作 1.下载vs2015 2.下载mysql2017 3.安装 1.创建数据库 2. 将数据库映射成模型 3创建aspx 文件. 写下窗体内容的代码 hello_worldEntities en ...
- 【转】Mac 程序员的十种武器
http://chijianqiang.baijia.baidu.com/article/3733 上 在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 M ...
- idea中不重启服务器更改代码(使用jrebel)
http://139.199.89.239:1008/88414687-3b91-4286-89ba-2dc813b107ce 第一步 第二步:下载jrebel 第三步(这里有些有有些没有) 下载完后 ...
- ASP.NET中刷新分页
1,第一次全部把数据加载到内存中,然后再做分页,性能差,不推荐. 2,GridView自带分页 3,AspNetPager分页控件 这个是第三分控件需要下载,很好用 4,自己写分页 前三种就不介绍如 ...
- Java面试不得不知的问题(一)
程序员面试 1. 面向对象的特征有哪些方面 · 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分, ...
- POJ的层次感分类
转载自:[http://blog.csdn.net/zzycsx/article/details/49103451] OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,po ...
- a链接打开另外的新页面
在a标签添加target = "_blank" 属性即可
- Linux进程通信之匿名管道
进程间的通信方式 进程间的通信方式包括,管道.共享内存.信号.信号量.消息队列.套接字. 进程间通信的目的 进程间通信的主要目的是:数据传输.数据共享.事件通知.资源共享.进程控制等. 进程间通信之管 ...
- angular常见问题总结
本文引自:https://www.cnblogs.com/zhoulujun/p/8881414.html 这篇是对angularJS的一些疑点回顾,是对目前angularJS开发的各种常见问题的整理 ...
- php 操作 mysql 实现批量执行mysql语句 mysql文件
<?php /** * 批量运行sql文件 * 正则分隔是重点 preg_split("/;[\r\n]+/", filecontent) */ $config = requ ...