已被阅读 942 次 | 文章分类: csharp | 2021-12-20 01:02
ActionResult返回视图的几种基本用法整理
1 返回简单视图
首先新建一个.net mvc工程,找到默认的HomeController.cs中Index方法
public ActionResult Index()
{
return View();
}
在Views文件夹中会有跟方法同名的Index.cshtml文件,我们将默认的内容删除,修改为如下:
@{
ViewBag.Title = "Home Page";
Layout = "";
}
<h1>小白GIS</h1>
因为默认的Index.cshtml会有默认的母版页,也就是框架页,这里我们设置为不用母版页;效果如下
return View()方法会默认去找跟方法名同名的视图;当然你也可以自建新建一个ActionResult的方法,然后在VIews文件夹中新建一个同名的cshtml文件,就不演示了;已经有工程自动生成的About.cshtml和Contact.chtml;
2 返回传值普通对象的视图
上面只是返回视图,这里,带上一个对象返回给视图,然后在视图中使用;
2.1 首先在Models文件夹下新建一个User类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication3.Models
{
public class User
{
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}
}
2.2 HomeController.cs中引入Models模块,目的为了能使用里面的类
using WebApplication3.Models;
2.3 新建一个 ActionResult方法GetUser,如下
public ActionResult GetUser()
{
User user = new User
{
Name = "小白GIS",
Age = 5,
Sex = "男"
};
return View(user);
}
2.4 在Views文件夹下新建GetUser.cshtml视图
或者可以直接右键上面的方法,添加视图;
@model WebApplication3.Models.User
@{
Layout = null;
}
<div>
@Model.Name<br />
@Model.Agee<br />
@Model.Sexe<br />
</div>
因为ActionResult返回的就是一个User对象,所以获取的时候在最顶部将User对象作为当前视图的全局Model对象,看就可以通过Model获取数据了;@model 后面跟的是的你User对象所在的工程路径,替换为自己的即可。声明时用model关键字,使用时用Model对象,他们不是一个东西
3 返回传值List的视图
3.1 新建ActioResult方法GetUserList
public ActionResult GetUserList()
{
List<User> list = new List<User> {
new User
{
Name = "小白GIS",
Age = 5,
Sex = "男"
},
new User
{
Name = "小白GIS 1",
Age = 6,
Sex = "女"
},
new User
{
Name = "小白GIS 2",
Age = 6,
Sex = "男"
}
};
return View(list);
}
3.2 新建视图GetUserList.cshtml
@model List<WebApplication3.Models.User>
@{
Layout = null;
}
<div>
@foreach (var user in Model)
{
@user.Name<br />
@user.Age<br />
@user.Sex<br />
<hr />
}
</div>
然后启动IIS Express查看效果,记住如果只是修改视图,则右键预览即可,如果修改了Controller则需要重新启动IIS Express服务器
这里我们将Model对象指向User List列表,所以可以用foreach遍历操作;
4 返回传值的分部视图(PartialView)
分部视图文件,一般放在Share文件夹,因为它作为一个页面的一部分,可以共享使用;接下来在Index首页中使用分部视图,并传值给分部视图
4.1 首先认识下分部视图如何使用
(1) 在Shared文件夹下新建一个视图文件CommonInfo.cshtml
<div style="color:purple;">
我是分部视图,存储一些共享可被多次使用的信息
</div>
(2) 在需要渲染分部视图内容的地方引入@Html.Partial("CommonInfo.cshtml");
@{
ViewBag.Title = "Home Page";
Layout = "";
}
<h1>小白GIS</h1>
<hr />
<h1>下面的内容来自分部视图文件</h1>
@Html.Partial("~/Views/Shared/CommonInfo.cshtml");
效果如下:
4.2 如何利用ActionResult返回分部视图并传值
(1) 在Index.cshtml中要渲染分部视图的地方添加Html.RenderAction(),如下
@{
ViewBag.Title = "Home Page";
Layout = "";
}
<h1>小白GIS</h1>
<hr />
<h1>下面的内容来自分部视图文件</h1>
@*@Html.Partial("~/Views/Shared/CommonInfo.cshtml")*@
@{Html.RenderAction("GetCommonInfo")}
GetCommonInfo是HomeController中的方法名;
(2) 添加方法GetCommonInfo
方法中返回一个PartialView,第一个参数是分部视图的名称,第二个参数是传过去的Model值
public ActionResult GetCommonInfo() {
User user = new User
{
Name = "公共用户",
Age = 15,
Sex = "男"
};
return PartialView("CommonInfo", user);
}
CommonInfo.cshtml
@model WebApplication3.Models.User
@{
Layout = null;
}
<div>
<div style="color:purple;">
我是分部视图,存储一些共享可被多次使用的信息<br />
@Model.Name<br />
@Model.Age<br />
@Model.Sex<br />
</div>
</div>
如上可以将值传到分部视图
所以渲染分部视图最常见的如上两种方式,一种直接渲染视图,另一种通过控制器方法跳转到视图,中间可以传值过去;更加高级一点
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号
玻璃钢生产厂家滁州大型户外玻璃钢雕塑厂家深圳玻璃钢蝴蝶柱雕塑白沙黎族自治县玻璃钢雕塑宁夏仿真人物玻璃钢雕塑哪家好商场装饰玻璃钢卡通雕塑直销价格河北仿铜玻璃钢雕塑销售厂家玻璃钢雕塑哪家价格低玻璃钢花盆废弃处理玻璃钢雪山雕塑价格获嘉玻璃钢雕塑厂家河南特色玻璃钢雕塑安庆市政工程玻璃钢花盆重庆百色玻璃钢人物雕塑平桥玻璃钢雕塑定制南京关公玻璃钢雕塑供应厂家邯郸玻璃钢浮雕不锈钢卡通雕塑惠州发光小品玻璃钢雕塑工艺昆明市玻璃钢雕塑设计供应商青海省玻璃钢雕塑哪里有鼓楼商场大厅美陈深圳主题商场美陈市场报价青岛汕头玻璃钢动物雕塑损坏玻璃钢雕塑珠海绿色种植玻璃钢花盆嘉定玻璃钢雕塑玻璃钢雕塑手绘插画海沧园林玻璃钢雕塑公司安徽学校玻璃钢卡通形象雕塑贵港玻璃钢雕塑价格江门玻璃钢蜗牛雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万