自动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 ...
随机推荐
- Cydia Tweak--Cydia Substrate
http://www.jianshu.com/p/8982e9670fc6 Cydia Substrate.MobileHooker MSHookMessageEx MSHookFunction Mo ...
- when 让你跳出异步回调噩梦 node.js下promise/A规范的使用
其实关于promise 的博客,前端时间专门写了一篇关于 promise 规范的文章,promise规范 让 javascript 中的异步调用更加人性化. 简单回忆下: promise/A规范定义的 ...
- 从Internet下载一个文件
使用的.net框架下的System.Net.WebClient类的DownloadFile()方法以图片为例:
- EF 状态版 增删改
1.利用 状态版 实现 增加 . 2.利用状态版 进行 删除 3. 利用状态版 实现 修改 ,修改 方法 有3种 第1种修改方法 第2种修改 方法 第3种修改方法
- 【转】使用webmagic搭建一个简单的爬虫
[转]使用webmagic搭建一个简单的爬虫 刚刚接触爬虫,听说webmagic很不错,于是就了解了一下. webmagic的是一个无须配置.便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代 ...
- numpy+pandas+matplotlib+tushare股票分析
一.数据导入 安装tushare模块包 pip install tushare http://tushare.org/ tushare是一个财经数据接口包 import numpy as np imp ...
- php curl使用总结(一)
今天和第三方支付做对接的时候,在本地用wamp(php版本5.4.14)运行他们的支付demo的时候,报了一个错误.loadXML函数中不能传空值.排查代码的时候,发现他们用了curl,我以前也接触过 ...
- CentOS6.5 配置IP的两种方式
1.dhcp动态获取ip 编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 ,配置如下: [root@localhost ~]# vi /etc/sys ...
- 前端HTML基础
1.0开发工具介绍 sublime的使用技巧链接 HTML特殊符号表 1.1 html概念 超文本标记语言(Hypertext Markup Language),属于一种描述性的标记语言(markup ...
- 在Linux文件清空的几种方法
在Linux文件清空的几种方法 1.使用重定向的方法 [root@centos7 ~]# du -h test.txt 4.0K test.txt [root@centos7 ~]# > tes ...