亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

翻譯:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 設計和開發站點

2019-11-17 01:34:13
字體:
來源:轉載
供稿:網友

翻譯:使用 asp.net MVC 4, EF, Knockoutjs and Bootstrap 設計和開發站點 - 3

原文地址:http://ddmvc4.codeplex.com/

原文名稱:Design and Develop a website using ASP.NET MVC 4, EF, Knockoutjs and Bootstrap

Part 1: 創建 Web application (Knockout.js, Asp.Net MVC and Bootstrap): 前端設計

在開始 UI 部分之前,我們先看一下在 ASP.NET MVC4 中使用 Knockoutjs 和 Bootstrap 有什么好處?

Why Knockoutjs:Knockout 使用 javaScript ViewModel 實現了 MVVM 模式. 在 MVC 中還有一個很棒的因素是從 Javascript 模型序列化為 Json 和從 Json 反序列為模型都很簡單,在 MVC4 中已經包含了這個腳本庫, 這使得在我們開發復雜的 UI 的時候,不論怎樣修改,都只需要很少的編碼,馬上我們用它來實現頁面。Why Bootstrap:Twitter 的 Bootstrap 是包括簡單并且靈活的 HTML, CSS, 以及廣受歡迎的 Javascript 用戶界面組件和交互。包括一組 CSS 樣式,組件和 JavaScript 插件。提供了跨平臺的支持, 消除了不同平臺的不一致問題。處理的非常好,良好的文檔和 Twitter Bootstrap's 站點本事就是現實中很棒的參考。最后,它節省了我大量的時間,只需要很少的測試,幾乎沒有瀏覽器的問題,節約了一半的開發時間,在我們的框架中其它優點還包括。

  • 12-列表個, 固定布局, 流式布局以及響應式布局.
  • 提供基本的 CSS, 包括:版式, code (使用 Google PRettify 的語法高亮), 表格, 表單, 按鈕,以及 Glpyhicons 圖標 .
  • Web UI 組件,例如 按鈕, 導航菜單, 標簽, 縮略圖, 提示, 進度條和其他雜項.
  • Javascript 插件,包括模式對話框, 下拉列表, 滾動條, 窗格, 工具提示, 彈出窗口, 提示, 按鈕, 收縮, 轉輪和提示.

在下面的步驟中,我們將演練使用測試數據來創建布局,設計 UI ,完成上述的目標。Step 1:

創建空白的應用; 命名為 “Application”14.png

Step 2:

在解決方案上右擊鼠標,添加一個新的 ASP.NET MVC4 項目,選擇 Internet Application 模版,使用 Razor 引擎。

15.png16.png完成第 2 步之后 - 項目的結構如下所示17.png

Step 3:

在 MVC 項目上鼠標右擊,選擇管理 NuGet 包,在搜索框中輸入 Bootstrap ,找到后,點擊 Install 按鈕。

18.png

有的時候,我會聯不到 NuGet 網站,你可以直接到 BootStrap 網站下載文件,添加到項目中。

主要是使用了樣式文件bootstrap.css,下載后,保存到 Content 文件夾中。

Step 4:

將下面的兩行代碼添加到 App_Start 文件夾中德 BundleConfig.cs文件中,為所有頁面使用 Knockoutjs 和 Bootstrap 提供支持。

bundles.Add(new ScriptBundle("~/bundles/knockout").Include(                                    "~/Scripts/knockout-{version}.js"));bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/bootstrap.css"));

在 Views/Shared 文件夾中 _Layout.cshtml 文件中,添加下面的行,注冊使用 knockout。

Also in _Layout,cshtml file under Views/Shared folder add below line to register knockout files as :

@Scripts.Render("~/bundles/knockout")

Step 5:

在視圖文件夾 Views 中添加一個名為 Contack 的文件夾,在其中添加一個名為 Index.cshtml 的視圖文件 ( 這一步可以通過在控制器中的 Index 方法上點擊右鍵完成 )。然后添加一個名為 ContactController 的控制器,在 Scripts 文件夾中添加一個名為 Contact.js 的腳本文件,項目文件夾如下所示:

19.png

Step 6:

修改 Route.config 文件,將默認的路由設置到 Contact 控制器。

routes.MapRoute(                name: "Default",                url: "{controller}/{action}/{id}",                defaults: new { controller = "Contact", action = "Index", id = UrlParameter.Optional }            );

修改 View/Shared 文件夾中的 _Layout.cshtml 文件,使用 BootStrap 語法,修改后的代碼如下所示。

復制代碼
<!DOCTYPE html><html lang="en"><head>    <meta charset="utf-8" />    <title>@ViewBag.Title - Contact manager</title>    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />    <meta name="viewport" content="width=device-width" />    @Scripts.Render("~/bundles/jquery")    @Scripts.Render("~/bundles/knockout")    @Styles.Render("~/Content/css")    @Scripts.Render("~/bundles/modernizr")    @RenderSection("scripts", required: false)</head><body>    <div class="container-narrow">        <div class="masthead">            <ul class="nav nav-pills pull-right">                            </ul>            <h3 class="muted">Contact Manager</h3>        </div>        <div id="body" class="container">            @RenderSection("featured", required: false)            <section>                @RenderBody()            </section>        </div>        <hr />        <div id="footer">            <div class="container">                <p class="muted credit">&copy; @DateTime.Now.Year - Design and devloped by <a >Anand Pandey</a>.</p>            </div>        </div>    </div></body></html>
復制代碼

Step 7:

現在可以運行程序,效果如下:20.png我們使用這個頁面顯示 Screen 1 ,顯示聯系人列表。

Step 8:

首先,我們在 Contact.js 中創建一個模擬的聯系人數據數組, (最后我們從數據庫中獲取), 隨后,我們使用這些數據填充表格。

復制代碼
var DummyProfile = [    {        "ProfileId": 1,        "FirstName": "Anand",        "LastName": "Pandey",        "Email": "anand@anandpandey.com"    },    {        "ProfileId": 2,        "FirstName": "John",        "LastName": "Cena",        "Email": "john@cena.com"    }]
復制代碼

然后,我們創建 ProfilesViewModel, ViewModel 用來保存聯系人信息,數組用來保存聯系人信息的集合。注意這里使用 ko.observableArray, 相當于常規數組,是觀察者模式中的主題,這意味著它可以在其中的項目發生變化的時候,自動更新界面。

最后,我們需要使用 ko.applyBindings() 來激活 knockout.

復制代碼
var ProfilesViewModel = function () {    var self = this;    var refresh = function () {        self.Profiles(DummyProfile);    };     // Public data properties    self.Profiles = ko.observableArray([]);    refresh();};ko.applyBindings(new ProfilesViewModel());
復制代碼

Step 9:

下一步,我們需要在 Index.cshtml 頁面寫一些代碼。以顯示聯系人列表。我們在 tbody 元素上使用 foreach 綁定,使用 knockout 根據聯系人數組中的每一個數據生成對應的子元素,然后告訴 knockout 我們希望使用對每個數據生成 tr 來填充 tbody.

復制代碼
<table class="table table-striped table-bordered table-condensed">    <tr>         <th>First Name</th>        <th>Last Name</th>        <th>Email</th>    </tr>    <tbody data-bind="foreach: Profiles">        <tr>            <td data-bind="text: FirstName"></td>            <td data-bind="text: LastName"></td>            <td data-bind="text: Email"></td>        </tr>    </tbody></table> <script src="~/Scripts/Contact.js"></script>
復制代碼

如果現在運行程序,就會看到聯系人的簡單列表21.png不要忘了,我們使用 Bootstrap 的樣式類來應用到 table 上,在上邊的例子中,如下所示。

<table class="table table-striped table-bordered table-condensed">

Step 10:

現在,我們需要為每一行增加編輯和刪除功能,表格的上邊有一個創建新聯系人的按鈕,做以下工作:

  • 在模版中添加 th 和 td ,在腳本中綁定 removeProfile 函數處理按鈕的點擊事件處理
  • 修改名字單元格,增加編輯聯系人的鏈接,使用 editProfile 函數綁定點擊事件
  • 在表格的前面添加創建聯系人的按鈕,使用 createProfile 函數綁定到點擊事件處理

頁面內容如下所示 :

復制代碼
<input type="button"  class="btn btn-small btn-primary"  value="New Contact" data-bind="click:$root.createProfile" /><hr /><table class="table table-striped table-bordered table-condensed">    <tr>         <th>First Name</th>        <th>Last Name</th>        <th>Email</th>        <th></th>    </tr>    <tbody data-bind="foreach: Profiles">        <tr>            <td class="name"><a data-bind="text: FirstName, click: $parent.editProfile"></a></td>            <td data-bind="text: LastName"></td>            <td data-bind="text: Email"></td>            <td><button class="btn btn-mini btn-
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美国产va在线影院| 欧美极品少妇xxxxx| 中日韩美女免费视频网站在线观看| 日韩网站免费观看高清| 欧美华人在线视频| 欧美日韩国产在线看| 国产精品国产三级国产aⅴ浪潮| 欧美成人午夜影院| 亚洲国产精品va在线观看黑人| 亚洲成人激情图| 国产精品久久久久久久久| 国产午夜精品美女视频明星a级| 国产精品黄色影片导航在线观看| 91精品国产九九九久久久亚洲| 国产精品麻豆va在线播放| 亚洲精品一区中文| 亚洲精品综合精品自拍| 日韩国产欧美精品一区二区三区| 精品无码久久久久久国产| 欧美专区日韩视频| 91精品在线观| 欧美视频在线视频| 日韩av黄色在线观看| 欧美激情精品久久久| 成人日韩av在线| 欧美日韩国产综合视频在线观看中文| 亚洲精品www| 亚洲级视频在线观看免费1级| 久久久久久久国产精品| 欧美性xxxx极品hd欧美风情| 日韩在线免费观看视频| 亚洲国产精品电影在线观看| 久久精品亚洲一区| 精品久久久一区二区| 国产欧美日韩高清| 97视频在线观看播放| 久99九色视频在线观看| 精品国产91久久久| 亚洲欧美日韩爽爽影院| 91亚洲精品一区| 2019精品视频| 欧美噜噜久久久xxx| 97超级碰碰碰久久久| 成人自拍性视频| 精品国产一区久久久| 久久综合色影院| 日韩人在线观看| 日韩av在线网页| 欧美小视频在线| 成人福利视频在线观看| 91精品久久久久久久久不口人| 亚洲国产成人一区| 久久琪琪电影院| 成人黄色av网| 91免费视频国产| 亚洲性69xxxbbb| 国产男女猛烈无遮挡91| 久久噜噜噜精品国产亚洲综合| 国产精品久久久久久久久免费| 亚洲国产成人精品电影| 成人做爰www免费看视频网站| 国产98色在线| 国产成人精品久久亚洲高清不卡| 欧美性受xxxx黑人猛交| 45www国产精品网站| 久久国产精品久久久| 日韩福利伦理影院免费| 亚洲最新视频在线| 欧美激情videoshd| 奇米影视亚洲狠狠色| 欧美性高跟鞋xxxxhd| 久久夜色精品亚洲噜噜国产mv| 久久精品视频va| 亚洲色图校园春色| 高清视频欧美一级| 久久久爽爽爽美女图片| 国产成人鲁鲁免费视频a| 精品成人av一区| 久久99国产精品久久久久久久久| 国产午夜精品一区理论片飘花| 欧美大片免费观看在线观看网站推荐| 视频在线观看一区二区| 亚洲精品成人久久电影| 亚洲精品国精品久久99热一| 福利精品视频在线| 91高清视频在线免费观看| 亚洲一区二区三区毛片| 4388成人网| 4k岛国日韩精品**专区| 91黑丝在线观看| 久久69精品久久久久久久电影好| 亚洲国产成人一区| 亚洲色图日韩av| 久久精品国产清自在天天线| 国产成人精品在线| 国产一区二区丝袜高跟鞋图片| www.欧美视频| 欧美精品久久久久久久久| 91精品国产高清自在线看超| 亚洲人成电影网| 日韩电影中文字幕| 国产97在线亚洲| 在线日韩欧美视频| 欧美在线国产精品| 成人精品久久一区二区三区| 欧美性理论片在线观看片免费| 欧美电影在线观看高清| 久久中国妇女中文字幕| 夜夜嗨av色一区二区不卡| 欧美在线性爱视频| 国产精品国产自产拍高清av水多| 欧美性受xxxx白人性爽| 成人乱人伦精品视频在线观看| 国产成人av在线| 国产日本欧美一区| 国产福利精品av综合导导航| 成人午夜小视频| 久久精品国产69国产精品亚洲| 久久精品一区中文字幕| 日韩最新中文字幕电影免费看| 国产成人一区二区三区小说| 九九九热精品免费视频观看网站| 亚洲欧美另类中文字幕| 成人性生交大片免费看小说| 亚洲一区av在线播放| 成人久久一区二区| 中文字幕日韩在线视频| 91精品久久久久久久久| 亚洲欧美日本伦理| 日韩欧美在线视频观看| 欧美视频在线免费看| 黑人精品xxx一区一二区| 欧美疯狂xxxx大交乱88av| 国产91av在线| 影音先锋日韩有码| 国产精品青青在线观看爽香蕉| 疯狂做受xxxx欧美肥白少妇| 欧美激情极品视频| 国产日本欧美一区二区三区| 热re91久久精品国99热蜜臀| 精品亚洲一区二区三区在线观看| 亚洲香蕉在线观看| 国产精品美女免费视频| 日本久久91av| xxxx性欧美| 亚洲免费电影一区| 欧美日韩国产在线播放| 国产91精品高潮白浆喷水| 人人爽久久涩噜噜噜网站| 亚洲国产精品久久久久| 日本精品免费观看| 国产视频观看一区| 亚洲一区二区三区视频| 中文字幕日韩av电影| 欧美日韩国产精品| 5252色成人免费视频| 国产精品丝袜高跟| 精品无人国产偷自产在线| 欧美激情一二三| 波霸ol色综合久久| 欧洲永久精品大片ww免费漫画| 日韩精品极品在线观看| 一区二区三区四区视频| 亚洲电影免费观看高清|