[ASP.NET MVC4高级编程] 学习记录(一)

时间:2023-12-10 11:09:08

理论:

先有GUI在发展,当用户按下某个键,某个进程会监听到这个动作,这个进程就是控制器。这就是MVC模式。

后来有了事件驱动编程,响应动作的是按钮本身,而不是控制器。

再后来webForm中,事件驱动需要通过隐藏域保存页面的状态。看起来提交一次没有变化,实际上经历了保存状态、销毁页面、服务端处理、恢复页面几个过程,究其本质,是因为web是无状态的。

最后的MVC,由用户提交一个请求,控制器选择相应视图,操纵模型,然后反馈给用户

控制器把视图渲染成html或其他,再由浏览器解释html。浏览器无法直接渲染视图。

ViewBag是ViewData的动态封装器,没有太大差异。

知识点:

HttpUtility.HtmlEncode(string)   可以对传入的string进行处理,避免被注入js代码或者html标记。

Html.Raw(string)  可以把返回的string当作html来解释

Ajax.JavaScriptStringEncode  向浏览器输出JS字符串编码

Controller/Action/id   路由默认有id的参数

@@  若要输出@符号,可用两个@转义

返回视图

return View("Index"); 返回该目录下的另一个视图

return View("~/Views/Home/Index.cshtml"); 使用~/完整路径来返回指定视图

返回分部视图

return PartialView();

js中:  

$(function(){
$("#result").load("/Home/message");
});

在视图中引用命名空间

1、可以@using Project.Entity

2、可以在Views目录下的webConfig文件中声明

[ASP.NET MVC4高级编程] 学习记录(一)

默认布局页

如果选的是使用布局的视图,默认布局页在Views/_ViewStart.cshtml里可以改

分部视图和常规视图差不多,只是没有<html>和<head>