ASP.NET MVC3 Razor 布局页和分部页 使用model
发布网友
发布时间:2022-05-12 07:13
我来回答
共4个回答
懂视网
时间:2022-04-21 08:44
启用页面缓存
在MVC3中如果要启用页面缓存,需要在页面对应的Action前面加上一个OutputCache属性。
@{ ViewBag.Title = "主页";} 页面缓存 现在时间:@DateTime.Now.ToString("T")
在Controller中添加对应的Action,并加上OutputCache属性。
[OutputCache(Duration=5, VaryByParam="none")] public ActionResult Index() { return View(); }
刷新页面即可看到页面做了一个10s的缓存。当页面中数据不是需要时时的呈现给用户时,这样的页面缓存可以减小时时的对数据处理和请求,当然这是针对整个页面做的缓存,缓存的力度还是比较粗的。
缓存的位置
可以通过设置缓存的Location属性,决定将缓存放置在何处。
Location可以设置的属性为(Any Client Downstream Server None ServerAndClient)
Location的默认值为Any。一般推荐将用户的信息存储在Client端,一些公用的信息存储在Server端。
加上Location应该是这样的。
[OutputCache(Duration=5, VaryByParam="none",Location=OutputCacheLocation.Client ,NoStore=true)] public ActionResult Index() { return View(); }
配置文件中通用设置
当我们需要对多个Action进行统一的设置时,可以在web.config文件中统一配置后进行应用即可。
在web.config中配置下Caching节点
那么在Action上使用该配置节点即可,这样的方法对于统一管理配置信息比较方便。
[OutputCache(CacheProfile="Cache1Hour")] public ActionResult Index() { return View(); }
热心网友
时间:2022-04-21 05:52
asp.net MVC 4.0中总结 视图里加载布局页和分部页几种方法
@RenderPage()
但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传递。
1 @RenderPage("~/Shared/Component/Dialog.cshtml", new { title = "Hello world!", content="Nani" })
分部视图接收数据通过Page
1 <div id="dialog" title="@Page.title" style="display: none;">
2 <p>
3 @Page.title
4 </p>
5 </div>
@Html.Partial()
用于将分部视图渲染为字符串
@Html.Partial("_PartialPage1",model,ViewData)直接返回MvcHtmlString填充
1 @Html.Partial("Component/Dialog", null, new ViewDataDictionary { { "title", "Hello world!" }, { "content", "Nani?" } })
Razor子视图里使用 ViewBag 来获取传递的数据
1 <div id="dialog" title="@ViewBag.title" style="display: none;">
2 <p>
3 @ViewBag.content
4 </p>
5 </div>
传递强类型到部分视图
1 @{
2 var args = new Dictionary<string,string>();
3 args["redirectController"] = "Admin";
4 args["redirectAction"] = "User";
5 }
6 @Html.Partial("_childPartial",args)
_childPartial.cshtml
1 @model Dictionary<string,string>
2 <div>@Model["redirectController"]</div>
3 <div>@Model["redirectAction"]</div>
@RenderPartial()
将分布视图直接写入响应输出流,所以只能直接放在代码块中,不能放在表达式中(返回值是void)
RenderPartial 不需要创建 Controller 的 Action ,而 RenderAction 需要在 Controller创建要加载的 Action。 RenderAction 会先去调用 Contorller 的 Action ,最后再 呈现视图,所以这里 页面会在 发起一个链接。 如果这个部分视图只是一些简单 的 html 代码,请使用 RenderPartial。 但如果这个部分视图 除了有 html 代码外,还需要 通过 读取数据库里的数据 来渲染,就必须使用 RenderAction 了,因为 它可以在 Action 里调用 Model里的 法读取数据库,渲染视图后在呈现,而 RenderPartial 没有 Action,所以无法做到。
Partial 可以直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),然后缓存起来, 最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。
@Html.Action()
热心网友
时间:2022-04-21 07:10
@Html.RenderPartial("_Partial", MainMenuList);
在加载分布页时,第2个参数即是分部页绑定的模型实体..你强制指定一个,否则,会自定把页面绑定的模型指定为分部页的绑定模型
热心网友
时间:2022-04-21 08:44
参*:人生重要的不是所站的位置,而是所朝的方向。
在asp.net mvc3 布局中文件中 @RenderBody()是其他页面内容显示的位置...
RenderBody()一般用于母版业公共部分使用,即你的网站如果头和脚的部分都是一样的,在母版页中使用@RenderBody()就可以了。在MVC3中,Razor引擎中是没有“母版页”,改叫了“布局”页面,_layout.cshtml。存放在共享视图文件夹中,叫Shard文件夹。然后你新创建的视图内容会通过布局页面的@RenderBody()...
ASP.NET的版本现在有哪几个,之间有什么区别?
在ASP.NET MVC3 中,增加视图的对话框中允许你选择你希望的视图引擎,在新建项目对话框中,你可以指定项目默认的视图引擎,可以选择 WebForm,Razor,或者开源的视图引擎,例如:Spark, NHaml, 或者 NDjango.控制器的改进全局的 Action 过滤器有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑,...
ASP.NET Web Pages究竟是一种怎样的存在?
Web Pages就是原来内置于MVC3里面的Razor的剥离。理论上来说,http://ASP.NET可以选择两种框架模型,基于页面 或者 基于MVC 基于页面可以选择 WebForm 作为表现层,也可以选择 WebPages 作为表现层。同样的,基于MVC也有这两种视图引擎。其实说白了,表现层是可以独立于下面的框架模型的,所以两两组合后...
razor aspx哪个好
Razor 是一种用于ASP.NET Web开发的模板引擎,它允许开发者使用混合的C#和HTML代码来创建动态网页。其优势在于:简洁的语法:Razor 语法简洁直观,易于学习和使用。强大的功能:支持MVC架构,有助于实现网页的逻辑与表现的分离,有利于代码的维护和复用。与ASP.NET 紧密结合:作为ASP.NET的一部分,Razor ...
程序员应该选择java还是c#?
wpf中在xaml中布局控件,并支持INotifyPropertyChanged接口,可以非常容易的实现界面和数据分离,做出一个mvvm模型出来。 说到标记性语言,我们看看jsp的jstl、struts2的tags,还有asp.netmvc3之后的razor引擎: jstl和aspx的标签类似,自由、强大,可以很容易的穿插交织到html标记中; struts的标签就是个另类,我个人反感这种既不...
ASP.NET MVC 中 @Scripts.Render("~/bundles/jquery") 什么意思?_百度...
MVC3的Razor视图把。。符号就相当于表示代码块的<%%>,这样说之后你明白了不。。建议你补习下前两个版本的MVC
.cshtml文件是什么文件?
只能在 MVC3 或更高版本等支持 Razor 的框架里使用 cshtml。ASPX简介:ASPX文件是微软的在服务器端运行的动态网页文件,通过IIS解析执行后可以得到动态页面,是微软推出的一种新的网络编程方法,而不是ASP的简单升级,因为它的编程方法和ASP有很大的不同,他是在服务器端靠服务器编译执行的程序代码,ASP...
如何在asp.net的MVC 3剃须刀声明局部变量
{ var local="局部变量";} @local
对mvc3 razor的理解与概念
Razor和ASPX(WebForm),都是一种前端页面的引擎,你只要知道和aspx是一回事就行了。相比aspx这种引擎来说编写代码更简练更方便而已。
typescriptd.ts
ASP.NETCore是一个用于构建网页的框架。ASP.NETCore基于MVC架构,并提供用于构建Web的通用库。开始使用ASP.NETCoreRazor是一个使用C#和TypeScript构建动态网页的新框架。vue3typescript没有提示将Vue项目的tsconfig.json文件中的strict选项设置为true,这将启用TypeScript的所有严格类型检查。在你的Vue组件或...