自动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 ...
随机推荐
- IOError: [Errno 22] invalid mode ('rb') or filename: 'C
dataset = scipy.io.loadmat('F:\test_data.mat') 报错 IOError: [Errno ] invalid mode ('rb') or filename: ...
- GPU和CPU耗时统计方法
GPU端耗时统计 cudaEvent_t start, stop; checkCudaErrors(cudaEventCreate(&start)); checkCudaErrors(cuda ...
- mapping4java源码下载(alibab的开源项目)
项目中需要频繁实现json-->pojo,Bean-->Bean的转换,使用了mapping4java这个开源的框架: 网上查资料,该框架是愤怒的苹果提供的,附上原文地址 我也造了个轮子: ...
- js 动态创建标记
innerHTML:一旦使用了这个属性,它的全部内容都要被替换掉.且不会返回任何对刚插入的内容的引用 与document.write()方法一样,innerHTML属性也是HTML专有属性,不能用于任 ...
- 使用phpExcel批量上传excel表数据到mysql数据库中
/*批量上传数据*/ if(isset($_POST['submit']) && $_POST['submit']=='上传文件') { //导入类文件 require_once (& ...
- hdu_3501_Calculation 2
Given a positive integer N, your task is to calculate the sum of the positive integers less than N w ...
- Java的按值传递和按引用传递解说
在网上看到的一个帖子解释Java的按值传递和按引用传递,感觉挺全面,就转过来,以供以后学习参考: 1:按值传递是什么 指的是在方法调用时,传递的参数是按值的拷贝传递.示例如下: public clas ...
- Docker迁移学习及其他
起因: 有在一台服务器A上通过docker搭建git服务,由于某些原因需要将其迁移到另一台服务器B. 过程: 最终采用方式: 首先通过docker ps(-a) 查看目标容器,然后通过commit命令 ...
- ethereum(以太坊)(二)--合约中属性和行为的访问权限
pragma solidity ^0.4.0; contract Test{ /* 属性的访问权限 priveta public internal defualt internal interlnal ...
- vue 改变我们插值的符号{{}}改为${}
delimiters的作用是改变我们插值的符号.Vue默认的插值是双大括号{{}}.但有时我们会有需求更改这个插值的形式. delimiters:['${','}'] 现在我们的插值形式就变成了${} ...