Netacademia“我的第一个网络C#项目:待办事项应用程序”课程补充代码之旅
Facebook上的dotnet Group:dotnet鲨鱼
+------------------------+
| Desktop számítógép |
| |
| +-------------+ |
+---------------+ | | Alkalmazás | |
| | | | | |
| Felhasználó | | +-------------+ |
| | | |
| | | |
+---------------+ | |
+------------------------+
Hagyományos Desktop/Mobil alkalmazásfejlesztés
+--------------------------+
| Szerver számítógép |
+------------------------+ | |
| Desktop számítógép | | |
| Mobil eszköz | Hálózati | |
| | kapcsolat | +----------------------+ |
+---------------+ | | | | | |
| | | +-------------+ +---------------> | | Szerver alkalmazás | |
| Felhasználó | | | Alkalmazás | | | | (WebSzerveren futó | |
| | | | (Böngésző) | | <---------------+ | app) | |
| | | +-------------+ | | | | |
+---------------+ | | ^ | +----------------------+ |
+------------------------+ | | |
| | ^ |
^ | | | |
| | | | |
| | | | |
| | +--------------------------+
| | |
+ + +
HTML HTTP MVC
Webes Alkalmazásfejlesztés
由于环境和开发工作流程对于这些类型的开发很复杂,因此它不是手动创建的,而是在Visula Studio模板的帮助下。
使用向导,我们创建ASP.NET MVC Web应用程序(.NET框架),如下:
创建一个新项目: 
MVC应用程序选择
如果我们在应用程序目录中创建一个HTML文件,则默认情况下是我们的ASP.NET应用程序。也就是说,如果浏览器要求此文件,服务器将其发送回他:
此请求(从浏览器到服务器):
GET http://localhost:39399/SajatHtmlOldal.html
(浏览器中的服务器)返回HTML页面(网站):
<!DOCTYPE html >
< html >
< head >
< meta charset =" utf-8 " />
< title > Ez a saját html oldalunk címe </ title >
</ head >
< body >
Ez pedig a saját html oldalunk tartalma, ezt fogja a böngésző megmutatni.
</ body >
</ html >通过从浏览器打开文件:它以相同的方式工作:
file:///D:/Repos/WebesTodoApp201806/TodoApp/TodoApp/SajatHtmlOldal.html
它仍然以相同的方式显示它。
HTTP的任务是描述请求和答案的格式,如果您想通过网络查询内容。
HTTP请求由四个部分组成
我们对前两个感兴趣。
方法:例如获取,发布,放置,删除等。有关Wikipedia的详细信息
同样重要的是,HTTP协议不处理条件,因此请求是完全独立的。
如果您不想连续显示静态卡,但是:
这是一项不错的任务,ASP.NET MVC就是为此。
+-----------------+
| |
| Bevásárlólista |
| |
+-----------------+
| |
| Só |
| |
| Cukor |
| |
| Spagetti |
| |
| Marhahús |
| |
| Paradicsom |
| |
+-----------------+
在显示的情况下

问题:请求如何到达控制器?答:根据请求的标题。
例如:
GET http://localhost:39399/Home/About
这里的标题上半年指向应用程序:
http://localhost:39399
标题的后半部分和该方法在应用程序中意味着某些内容:
GET /Home/About
处理此操作是路由的责任。在标题中,“/”是分离的标志,即,可以将整个标题分解为有意义的部分,该部分可以通过应用程序处理。
根据ASP.NET MVC公约 - 该标题的第一部分是拨给控制器的(示例:Home)。控制器:控制器 - 第二部分是为请求服务的操作。动作:功能
这可以用来将每个请求组织到函数中,并将功能分解为控制单元。
重要的是,遵循前两个单元(控制器/操作)的其余标题将以某种形式包含请求的参数。
ASP.NET MVC框架在名称约定上非常高度构建:每个元素的名称在应用程序的操作中起决定性作用。
有两个重要的路由规则: - 如果未指定操作,那就是索引。 - 如果未指定控制器,则为家/索引
基于观点:
通常,控制器的视图位于我们的Web应用程序的 Views文件夹中,每个控件分组,分组文件夹的名称与控制器路由名称相同。
例如:HomeController视图位于视图 Home文件夹中。
和:每个视图文件的名称与它们所属的名称控制器操作相同。
注意:可以打破此约定:您还可以为操作选择特定的视图。
也就是说,homecontroller.todolist()动作的视图自动属于: views home todolist.chtml
您可以使用本教程编写HTML代码。
该视图可以定义可行的数据模型的类型。
crud: c reate, r ead, u pdate, d elet
短屏草图作为规范:
+------------------------------------------------+
| |
| +------------------+---------+--------+ |
| | elem 1 | módosít | töröl | |
| +-------------------------------------+ |
| | elem 2 | módosít | töröl | |
| +-------------------------------------+ |
| | elem 3 | módosít | töröl | <-----------------------------+--+ Műveletek kezdeményezésére
| +------------------+---------+--------+ | | szolgáló elemek, amivel
| | | | | a felhasználó kezdeményezni
| +-------------------------------------+ | | tudja az adott műveletet
| | | | | (link, gomb, stb.)
| +-------------------------------------+ | |
| | | | |
| +-------------------------------------+ | |
| | | | |
| +-------------------------------------+ | |
| | |
| | |
| | |
| +-----------------+ +----------+ | v
| | beviteli mező | | rögzítés | <---------------------------------+
| +-----------------+ +----------+ |
| |
| |
+------------------------------------------------+
索引是对控制器概述视图的请求,并以此为命名。也就是说,必须采取我们最初的概述视图,即索引操作。因此,我们重命名了当前的。
<form></form>您需要一个具有名称( <input name="valami megnevezés"/> )的<input /> - 需要一个按钮(或<input type="submit" />或<button></button> )call parameters in Call parameTers in http://localhost:39399/Todo/Create?Tennival%C3%B3=agaadfgafgadf 
Folyamat:
1. /Todo/Create paraméter nélkül feladja a Create nézetet
2. /Todo/Create paraméterrel rögzíti az adatot és átirányít az Index-re
Sajnos az adatok mindig inicializálódnak, azt még meg kell oldani.
De a legnagyobb elvi baj ezzel, hogy az adatok felküldése GET metódust használ, ami (mivel adatmódosítás történik) nem szabványos.
Helyette POST kell.
要在索引页面上提供一个输入页面(链接:http:// localhost:39399/todo/create)相对地址的概念可以
请求之间保留的测试数据
带有发布数据的编程数据输入是作为表单参数出现的:

Amit a Model Binder segítségével ugyanúgy függvény paraméterként tudunk átvenni az Action definícióban:
GET: URL paraméter Model binding:név alapján egyeztet
+----------------------------------------------+ (Query string) +-----+
| Böngésző | ^ +---------------> | |
+----------------------------------------------+ | | | Alkalmazás
| | | | | +--------------+
| | | | | | |
| +------------------+ | | | | | |
| | Adat1=érték1 | | +-------> | | Adatok | |
| | | | | | +-----> | |
| +------------------+ | | | | |
| | Adat2=érték2 | | +-------> | | | |
| | | | | | | | |
| +------------------+ | | | | | |
| | | | | | |
| | | | | +--------------+
| | | | |
| | | POST: Form data | |
| | v-------------------------> | |
| | | |
| | | |
| | +-----+
| |
| |
| |
| |
| |
| |
| |
| |
+----------------------------------------------+
在服务数据/视图时,应以某种方式分开说明。那是,
索引输入字段定理和编程输入
Microsoft SQL Server已安装了巧克力,这些软件包已安装:
cinst sql-server-express
cinst sql-server-management-studio
对于巧克力安装,必须从管理员命令行运行此命令:
@"%SystemRoot%System32WindowsPowerShellv1.0powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"
创建一个数据库:
检查单身错误选项
var item = db . TodoItems . FirstOrDefault ( x => x . Name . Contains ( "a" ) ) ;
if ( item == null )
{ // ha nincs ilyen elem
}
else
{ // ha megvan
} var item = db . TodoItems . SingleOrDefault ( x => x . Id == id ) ;
if ( item == null )
{ // ha nincs ilyen elem
}
else
{ // ha megvan
}找到差异
<input id="isDone" name="isDone" type="checkbox" value="true" >后者产生了以下方式:
<input name="isDone" id="isDone" type="checkbox" value="true">
<input name="isDone" type="hidden" value="false">
它可以通过复选框起作用,只有formdata被勾选。如果没有,浏览器根本不会将其发送。在这种情况下,(如果没有刻度),隐藏的字段来自浏览器,这是false价值,就像复选框没有被打勾一样。如果刻度在那里,两个值都会出现,一个true和false ,并且模型迎合者根据其顺序选择第一个值true
+--------------------------------+ +---------------------------------+ +----------------------------------+
| | | | | |
| | | EntityFramework | | |
| Alkalmazás | | Code First | | Adatbázis |
| | | | | |
| | | | | +---------------+ |
| | | 1. A kód alapján kitalálja | | | TodoItems | |
| | | hogy hogy lenne jó | | | | |
| Adatok osztályba | | +-> adatbázisba írni az +-> | +------> | | TodoItem | |
| szervezve | | | adatokat | | | TodoItem | |
| (TodoItem) | | | | | | TodoItem | |
| | | | | | | ... | |
| +---> | +> | +-> | | | | |
| + | | | | | | |
| Adatelérési osztály | | | <-----------------+ | |
| (DbContext) | | 2. Ha pedig adatot akarok | | | | ^ | |
| DbSet<TodoItem> | | lekérdezni, akkor a Linq | v | | | | |
| TodoItems <-----------------+ felületen keresztül | <+ | +---------------+ |
| | | fogadja a kérést és | | ^ |
| | | SQL lekérdezéssé alakítja| | + |
| db.TodoItems.Single() +----------------> a visszakapott adatokat | +-------------> SELECT |
| | | pedig betölti a TodoItems| | Id, Name, Done |
| | | DbSet-be | | WHERE |
| | | | | Id == @id |
| | | | | |
+--------------------------------+ +---------------------------------+ +----------------------------------+
HTML和CSS制造手免费课程
使用样式HTML描述舌头使您可以输入所有HTML成员的style参数。在此中,您可以输入着色,格式化和位置的设置。在W3Schools页面上的更多信息值得一看。
为CSS使用统一样式:样式与HTML代码分开,HTML为内容,CSS是形状的定义。您可以详细查看此网站。
可以通过召集开发人员工具(F12)在浏览器中测试CSS设置。
Twitter的图形艺术家及其程序员之一的Web包,能够显示特定网站(自动适应不同尺寸)。该软件包可在此处可用,其源代码位于GitHub上。
引导程序的基础之一是网格系统。
另一个原则是通过提供class参数来创建不同的显示元素,而无需任何其他CSS和JavaScript知识。每个组件的列表。
生成HTML页面的步骤:
@ {
Layout = null ;
}<head></head>部分中,并且JavaScript在<body></body>部分的末端使用。 @Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
在HTML框架中,您错过了两个地方:
@RenderBody()行指示视图由操作确定的部分。<body></body>的末尾,将其排除在外 @RenderSection ( "scripts" , required : false )到最后,JavasCrips将从您自己的捆绑包中加载:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
因此,请求请求:操作选择视图,选择布局,基于视图生成HTML代码的内容部分,基于布局代码生成HTML页面,并且视图生成的视图扩展到整个页面。