欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET MVC 控制器與視圖

 更新時(shí)間:2014年10月26日 15:32:38   投稿:hebedich  
這篇文章主要介紹了ASP.NET MVC 控制器相關(guān)內(nèi)容以及視圖相關(guān)知識,非常的詳盡,希望對大家有所幫助

一、控制器相關(guān)

在Controller類中方法訪問級別為public的方法,就是行為(Action).如果不希望Controller類中的方法成為Action(可以在地址欄中被訪問),有兩種實(shí)現(xiàn)方式:將方法的訪問級別設(shè)置為private在方法上添加特性標(biāo)記[NonAction]

                  

諸如新增\修改等功能模塊,我們往往會(huì)創(chuàng)建2個(gè)名稱相同的Action:一個(gè)action用于加載新增\修改頁面;另一個(gè)action用于處理新增\修改頁面提交的表單數(shù)據(jù).那么如何區(qū)分在何時(shí)調(diào)用哪個(gè)action呢?

  我們將加載新增|修改頁面時(shí)被調(diào)用的action,添加[HttpGet]特性標(biāo)記;將處理頁面提交的表單數(shù)據(jù)時(shí)調(diào)用的action,添加[HttpPost]特性標(biāo)記.

下面的示例代碼演示了如何實(shí)現(xiàn)學(xué)生的新增(action相關(guān)的代碼).

                  

如何在Action中獲取表單提交的數(shù)據(jù)?

表單中提交的數(shù)據(jù),可以通過Action的參數(shù)進(jìn)行映射.

映射的前提條件:Html標(biāo)記的name屬性值和action中參數(shù)的名稱要一致.

下面的示例代碼演示了映射的過程(注意粉色框標(biāo)記的部分):

                  

Action中如何映射復(fù)雜對象?

對于上面的映射代碼,我們還可以有另外一種等價(jià)的寫法,就是將映射的屬性定義到一個(gè)實(shí)體類中,這樣我們就可以在action中添加該實(shí)體類型的參數(shù),參考代碼如下所示:

                  

如何從一個(gè)Action中跳轉(zhuǎn)至另外一個(gè)Action?

新增或修改功能完成后,需要跳轉(zhuǎn)至數(shù)據(jù)列表頁面,我們可以通過如下代碼實(shí)現(xiàn):

代碼 => return RedirectToAction(“ActionName”, “ControllerName”).

二、視圖相關(guān)

在ASPX視圖引擎中,可以使用asp服務(wù)器控件,但它的作用僅僅局限與生成html代碼,而不推薦開發(fā)人員使用asp控件的事件.因此建議開發(fā)人員手工編寫Html標(biāo)記。

但是手寫Html標(biāo)記比較耗費(fèi)時(shí)間,有沒有更好的解決方案?答案就是使用Html輔助方法。

Html輔助方法

Html輔助方法的作用就是通過調(diào)用C#方法的方式,快速的生成相應(yīng)的html標(biāo)記.

Html輔助方法分為2大類:弱類型html輔助方法和強(qiáng)類型html輔助方法.

其中以For關(guān)鍵字結(jié)尾的都是強(qiáng)類型的輔助方法.下面的示例代碼演示了二者的調(diào)用方式,以及生成的html源碼。

                  

注意:Html輔助方法有很多種重載形式,在開發(fā)過程中可以根據(jù)實(shí)際需要自行選擇.比如要實(shí)現(xiàn)一個(gè)包含class\style\onchange屬性和事件的單行文本框,可以參考如下代碼: 

                  

強(qiáng)調(diào):如何使用HTML輔助方法生成form標(biāo)記?

生成form標(biāo)記的兩個(gè)Html輔助方法為:Html.BeginForm()和Html.EndForm(),但他們在使用時(shí)和其他的Html輔助方法有所不同,下面的示例代碼演示了它們的兩種用法:

                  

如何在URL地址中傳遞參數(shù)?

場景一:將學(xué)生ID值映射到名稱為id參數(shù)上

場景二:將學(xué)生ID值映射到名稱為stuId參數(shù)上

場景三:url地址中包括stuId和name兩個(gè)參數(shù)

這三種場景的使用代碼如下所示:

                  

其他在實(shí)際開發(fā)過程中,一個(gè)小的功能模塊就對應(yīng)一個(gè)控制器.比如學(xué)生信息管理就是一個(gè)控制器,新增學(xué)生\修改學(xué)生\查詢學(xué)生列表\刪除學(xué)生都可以對應(yīng)控制器中的Action.常用Html輔助方法匯總

弱類型

強(qiáng)類型

單行文本框

Html.TextBox()

Html.TextBoxFor()

多行文本框

Html.TextArea()

Html.TextAreaFor()

密碼框

Html.Password()

Html.PasswordFor()

復(fù)選框

Html.Checkbox()

Html.CheckBoxFor()

單選按鈕

Html.RadioButton()

Html.RadioButtonFor()

下拉列表框

Html.DropdownList()

Html.DropdownListFor()

平鋪列表框

Html.ListBox()

Html.ListBoxFor()

Label

Html.Label()

Html.LabelFor()

Form表單

Html.BeginForm() Html.EndForm()

超鏈接

Html.ActionLink()

如何在視圖中使用下拉列表

第一步:在action中構(gòu)造好下拉列表中需要的數(shù)據(jù),數(shù)據(jù)的類型為IEnumerable<SelectListItem>。

第二步:將構(gòu)造好的數(shù)據(jù)放到Controller中的ViewData(ViewBag|TempData)屬性中。

第三步:在視圖view中使用Html.DropDownList輔助方法來生成下拉列表,而綁定的數(shù)據(jù)可以使用視圖View中的ViewData來獲?。〒Q句話講就是,Controller中放置到ViewData的數(shù)據(jù),可以在視圖View中的ViewData屬性中提?。?/p>

                  

在視圖中使用Html.DropDownList綁定Ienumerable<SelectListItem>

                  

相關(guān)文章

  • asp.net程序編譯調(diào)試時(shí)偶爾出現(xiàn)訪問被拒絕的錯(cuò)誤的解決方法

    asp.net程序編譯調(diào)試時(shí)偶爾出現(xiàn)訪問被拒絕的錯(cuò)誤的解決方法

    asp.net程序編譯調(diào)試時(shí)偶爾出現(xiàn)訪問被拒絕的錯(cuò)誤的解決方法...
    2007-04-04
  • .NET?6新特性試用之TryGetNonEnumeratedCount?方法

    .NET?6新特性試用之TryGetNonEnumeratedCount?方法

    這篇文章主要介紹了.NET?6新特性試用TryGetNonEnumeratedCount,這個(gè)方法可計(jì)算可枚舉類型的元素總數(shù),下面來看看具體的使用方式吧,需要的朋友可以參考一下
    2022-03-03
  • asp.net如何在圖片上加水印文字具體實(shí)現(xiàn)

    asp.net如何在圖片上加水印文字具體實(shí)現(xiàn)

    這篇文章主要介紹了asp.net如何在圖片上加水印文字具體實(shí)現(xiàn),有需要的朋友可以參考一下
    2013-12-12
  • asp.net FreeTextBox配置詳解

    asp.net FreeTextBox配置詳解

    FreeTextBox 是一個(gè)開源的服務(wù)器控件。我們可以輕松地將其嵌入到 Web Forms 中實(shí)現(xiàn)HTML內(nèi)容的在線編輯。
    2009-11-11
  • .net core Api 部署到Linux的方法步驟

    .net core Api 部署到Linux的方法步驟

    這篇文章主要介紹了.net core Api 部署到Linux的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • webapi中如何使用依賴注入

    webapi中如何使用依賴注入

    本篇將要和大家分享的是webapi中如何使用依賴注入,依賴注入這個(gè)東西在接口中常用,實(shí)際工作中也用的比較頻繁,因此這里分享兩種在api中依賴注入的方式Ninject和Unity。下面跟著小編一起來看下吧
    2017-02-02
  • .NET 動(dòng)態(tài)編譯

    .NET 動(dòng)態(tài)編譯

    代碼的動(dòng)態(tài)編譯并執(zhí)行是一個(gè).NET平臺提供給我們的很強(qiáng)大的工具用以靈活擴(kuò)展(當(dāng)然是面對內(nèi)部開發(fā)人員)復(fù)雜而無法估算的邏輯,并通過一些額外的代碼來擴(kuò)展我們已有 的應(yīng)用程序。
    2009-05-05
  • Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查

    Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查

    這篇文章介紹了Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 一步步打造簡單的MVC電商網(wǎng)站BooksStore(4)

    一步步打造簡單的MVC電商網(wǎng)站BooksStore(4)

    這篇文章主要和大家一起一步步打造一個(gè)簡單的MVC電商網(wǎng)站,MVC電商網(wǎng)站BooksStore第四篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • ASP.NET MVC下基于異常處理的完整解決方案總結(jié)

    ASP.NET MVC下基于異常處理的完整解決方案總結(jié)

    ASP.NET MVC是一個(gè)極具可擴(kuò)展開發(fā)框架,在這篇文章中我將通過它的擴(kuò)展實(shí)現(xiàn)與EntLib的集成,并提供一個(gè)完整的解決異常處理解決方案。
    2017-01-01

最新評論