自动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 ...
随机推荐
- 用到UdpClient的一点经验
Thread.Abort对UdpClient.Receive阻塞的线程无效 http://computer-programming-forum.com/4-csharp/184f9d4ee63704f ...
- MapReduce计算每年最大值
1. 测试文件生成程序,参考 https://www.cnblogs.com/jonban/p/10555364.html MapReduce程序示例如下: 2. 新建Maven项目 hadoop ...
- SQL随手记
数据库改名 想要达到的效果,类似于将一个文件[复制粘贴重命名]. 0.首先得断开连接,复制一份备份.然后再连接上,进行下面的操作. 1.在树形上,选中要改名的数据库,右键重命名. 2.还是它,右键,属 ...
- 等待唤醒机制,UDP通信和TCP通信
等待唤醒机制 通过等待唤醒机制使各个线程能有效的利用资源. 等待唤醒机制所涉及到的方法: wait() :等待,将正在执行的线程释放其执行资格 和 执行权,并存储到线程池中. notify():唤醒, ...
- Python的socket编程
我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要 ...
- finddler的安装与设置
这是抓取手机包的设置 过滤 新安装的,可能还需要证书问题
- Linux下vim操作的一些使用技巧
以下均为个人在编程时对vim编辑器的一些心得,大神请指点,新手可以看过来 1.多文本编辑 vim -On/-on filename_1 … filename_n 如上所示,在要编辑的文件名前加上“-O ...
- 红帽CentOS7 密码破解
1.在启动的时候按住方向键停留在内核选项页面,在内核选项出按e键 2.进入到另一个页面后,寻找到以linux16开头的地方,按end到行后,输入空格,然后输入rd.break console=tty0 ...
- httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例
httpd配置内容 httpd2.2 配置文件: /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf 服务脚本: /etc/rc.d/init.d/ ...
- manjaro安装teamviewer后无法打开
点桌面快捷方式一闪而过 命令行运行提示 $ teamviewer /opt/teamviewer/tv_bin/script/tvw_exec:行7: /opt/teamviewer/logfiles ...