自动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 ...
随机推荐
- POJ-2229 Sumsets---完全背包变形
题目链接: https://vjudge.net/problem/POJ-2229 题目大意: 给定一个N,只允许使用2的幂次数,问有多少种不同的方案组成N. 思路: 处理出2的幂次方的所有的数字,当 ...
- 引用类型(二):Array类型
一.js中的数组与其它语言中的数组的区别1.ECMAScript数组的每一项可以保存任何类型的数据2.ECMAScript数组的大小是可以动态调整的 二.创建数组的基本方式1.使用Array构造函数 ...
- nodejs 的一些PHP函数库
http://locutus.io/php/ nodejs 的一些PHP函数库 PHP extensions in JavaScript array array_change_key_case arr ...
- 使用node.js + socket.io + redis实现基本的聊天室场景
在这篇文章Redis数据库及其基本操作中介绍了Redis及redis-cli的基本操作. 其中的publish-subscribe机制应用比较广泛, 那么接下来使用nodejs来实现该机制. 本文是对 ...
- hihocoder1398 网络流五之最大权闭合子图
最大权闭合子图 虽然我自己现在总结不好最大权闭合子图.但也算稍稍理解辣. 网络流起步ing~~~(- ̄▽ ̄)- #include<iostream> #include<cstdio& ...
- 基于指令的移植方式的几个重要概念的理解(OpenHMPP, OpenACC)-转载
引言: 什么是基于指令的移植方式呢?首先我这里说的移植可以理解为把原先在CPU上跑的程序放到像GPU一样的协处理器上跑的这个过程.在英文里可以叫Porting.移植有两种方式:一种是使用CUDA或者O ...
- 第51章 设置FLASH的读写保护及解除—零死角玩转STM32-F429系列
第51章 设置FLASH的读写保护及解除 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...
- iphone应用程序生命周期浅析
做iphone开发有必要知道iphone程序的生命周期,说白点就是当点击程序图标启动程序开始到退出程序整个使用运行过程中底下的代码都发生了什么,只有理解生命周期,有利于我们开发人员开发出更棒的应用 接 ...
- 不使用data-ng-app指令的表达式
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- linux下后台运行jar包
#当前窗口退出 项目关闭$ java -jar test.jar #当前窗口关闭 项目关闭$ nohup java -jar test.jar &#当前窗口关闭 项目不关闭$ nohup ja ...