C#MVC框架项目基础

1.创建新项目->选择ASP.NET Core Web应用程序->选择Web应用程序(模型视图控制器)

2.wwwroot放静态资源:css,font,images,js,map4,html...

   MVC:Models项目没用上,以后再补充。Controllers控制器xxController.cs,Views视图子文件夹->xx.cshtml

3.项目逻辑总控制:Program.cs->调用UseStartup

跳转给Startup.cs->Configuration中有:

app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

            } //第三个 URL 段与路由参数 id 相匹配 id? 表示数量可变

默认首页:协议+路径/Home/index/

4.视图总控制:Views->_ViewStart.cshtml

@{
    Layout = "_Layout";
}

Views->Shared->_Layout.cshtml公共被调用模板

    <title>@ViewData["Title"] - Practice</title>

自定义标题:调用页使用@{ViewData["Title"]="xxx";}

 

<div class="container">
        <partial name="_CookieConsentPartial" />
        <main role="main" class="pb-3">
            @RenderBody()

<!--布局被引用标签,调用页只需在此处写入主体内容-->
        </main>
    </div>

...

@RenderSection("Scripts", required: false)

<!--在视图中有定义Scripts节点,它就会显示,反之不显示。
-->

例如:

@RenderSection("myName", required: true)
只要引用这个Layout page的视图,均要定义:
@section myName{    @*节点代码*@}

5.传参:

前端传值:

后端传值:ViewData、ViewBag、TampData的区别:
类型:ViewData为object型,需要根据输出类型我们自己去转换;ViewBag为dynamic型,可自动根据数据类型转换。
结构:ViewData为典型的字典型(Dictionary)即键值对结构,ViewBag则为动态型,子程序运行的时候进行动态的解析。
执行速度:ViewData比ViewBag的速度快,因为ViewBag源于ViewData,只是内部比ViewData多了一层Dynamic控制。
值的处理:ViewData和ViewBag值只对当前的View有用,TempData可在不同的action之间传递。
生命周期:ViewData和ViewBag的生命周期取决于View,TempData的值在使用了一次后会自动删除
控制器中写:ViewData["XX"]="xx";视图中调用:@ViewData["XX"]

 

6.接口

IActionResult接口
ActionResult 是IActionResult接口的实现(implement) 是一个抽象类
ViewResult, PartialViewResult, JsonResult 是抽象类ActionResult的实现(implement)
不确定类型时可使用:ActionResult 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值