如何理解ASP.NETMVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、虹口網(wǎng)站維護(hù)、網(wǎng)站推廣。

一、數(shù)據(jù)驗(yàn)證

數(shù)據(jù)驗(yàn)證的步驟在模型類中添加與驗(yàn)證相關(guān)的特性標(biāo)記在客戶端導(dǎo)入與驗(yàn)證相關(guān)的js文件和css文件使用與驗(yàn)證相關(guān)的Html輔助方法在服務(wù)器端判斷是否通過服務(wù)器端驗(yàn)證常用的驗(yàn)證標(biāo)記                    如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

Required:非空驗(yàn)證StringLength:驗(yàn)證字符串的長度RegularExpression:正則表達(dá)式驗(yàn)證Compare:比較兩個字段的值是否相等Range:范圍驗(yàn)證Remote:服務(wù)器驗(yàn)證(需要在controller中編寫返回值為JsonResult的Action)自定義驗(yàn)證標(biāo)記與驗(yàn)證相關(guān)的js文件

在ASP.NET MVC中提供了2套驗(yàn)證框架,分別是微軟驗(yàn)證框架和jquery驗(yàn)證框架.默認(rèn)啟用了jquery驗(yàn)證框架.

注意:這些js文件的順序不能顛倒;其中Site.css文件中定義了數(shù)據(jù)驗(yàn)證使用的樣式.

                    如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

驗(yàn)證相關(guān)的Html輔助方法

注意:1.必須使用Html.ValidationMessage()和Html.ValidationMessageFor()來顯示驗(yàn)證失效的提示信息;

2.被驗(yàn)證的控件(如文本框\下拉列表框等)必須使用Html輔助方法生成才有效.

                    如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

在服務(wù)器端判斷模型是否通過了驗(yàn)證(服務(wù)器端驗(yàn)證)

頁面中如果使用了MVC驗(yàn)證功能,那么在后臺對應(yīng)的Action中必須通過ModelState.IsValid判斷是否通過了服務(wù)器端驗(yàn)證。只有通過了服務(wù)器端驗(yàn)證,才能執(zhí)行其他的業(yè)務(wù)邏輯代碼

                    如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

使用要點(diǎn):

被驗(yàn)證的標(biāo)記不能是純html,必須使用相應(yīng)的html輔助方法

例如:Html.TextBoxFor(model=>model.UserName),則驗(yàn)證有效;

<input type=”text” id=”UserName” name=”UserName” />,則驗(yàn)證無效;

必須使用相應(yīng)的html輔助方法顯示驗(yàn)證消息(Html.ValidationMessage)被驗(yàn)證的控件必須放在有html.beginform的輔助方法內(nèi)部(不能是純<form>標(biāo)記).客戶端驗(yàn)證是不安全的,容易被禁用或欺騙,所以一定要在服務(wù)器端判斷ModelState.IsValid是否為true.

Action與View的數(shù)據(jù)傳遞

在某些情況下,視圖需要顯示多份數(shù)據(jù)(比如被修改的員工信息\崗位列表\部門列表),但是Action在返回視圖時,View()方法只能傳遞1個object類型的數(shù)據(jù),那么其他的數(shù)據(jù)該如何傳遞?

ASP.NET MVC為我們提供了3種方案:ViewData\TempData\ViewBag.

重要提示:在Controller和View中都有這三個屬性,在Controller的相應(yīng)屬性中存放了數(shù)據(jù)后,就可以在View的相應(yīng)屬性中提取這些數(shù)據(jù)。

ViewData

ViewData是一個字典類型.向里面添加數(shù)據(jù)時要以鍵值對的形式添加.

首先在Action中向ViewData中添加,其次就可以在View中訪問ViewData來提取數(shù)據(jù).

                  如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

ViewBag

ViewBag是一個動態(tài)類型的屬性。在ASP.NET MVC 3.0中才加入了ViewBag屬性.

動態(tài)類型:dynamic,就是可以事先不為其定義屬性,通過直接給屬性賦值的方式就可以隨時為它添加新的屬性.

下面的代碼演示了向ViewBag中存放cls和stu兩個對象,這兩個對象分別放到了屬性ClassInfo和StudentInfo中。

                  如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

TempData

TempData的用法和ViewData很相似,都是字典類型.那他們的區(qū)別是什么?

ViewData中存儲的數(shù)據(jù)僅僅對本次訪問的當(dāng)前action有效.而TempData中存儲的數(shù)據(jù),除了對本次訪問的當(dāng)前action有效外,還對本次訪問的其他action有效(比如在Action1中向TempData中存放了數(shù)據(jù),即使從Action1跳轉(zhuǎn)至Action2后,仍然可以在Action2中從TempData提取數(shù)據(jù)。而ViewData和ViewBag都無法做到這一點(diǎn)).因此,TempData中數(shù)據(jù)的生命周期比ViewData|ViewBag中的生命周期要長.

ActionResult的實(shí)現(xiàn)類

在ASP.NET MVC模型中,Action用于響應(yīng)用戶的各種請求,比如向客戶端返回html文檔、html片段、json數(shù)據(jù)、純文本、文件等結(jié)果。在ASP.NET MVC中通過在Action(行為或操作)方法中返回ActionResult類型的對象來實(shí)現(xiàn)向客戶端響應(yīng)上面的各種結(jié)果。

ActionResult類是個抽象類(抽象類無法直接被實(shí)例化).

ActionResult有很多實(shí)現(xiàn)類,不同的實(shí)現(xiàn)類用于響應(yīng)客戶端不同的結(jié)果。并且在Controller類中提供了大量的輔助方法,這些輔助方法可以快速的創(chuàng)建各種ActionResult.

在實(shí)際開發(fā)中,我們更多的是使用Controller類中的輔助方法,而非自己手工創(chuàng)建ActionResult的實(shí)現(xiàn)類。

ViewResult類

ViewResult類的作用是向客戶端響應(yīng)View目錄中一個視圖文件.

Controller類中提供了View()方法,來快速的返回一個ViewResult類對象.

ContentResult類

該類用于向客戶端返回一段文本內(nèi)容(純文本\HTML...).

在Controller類中的輔助方法為:Controller.Content(string content);
                如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容


RedirectToRouteResult類

該類的作用是從當(dāng)前action跳轉(zhuǎn)至其他action.

在Controller類中的輔助方法為:RedirectToAction(“ActionName”, “ControllerName”)

RedirectResult類

在服務(wù)器端從當(dāng)前Action跳轉(zhuǎn)到其他URL地址.

在Controller類中的輔助方法為:Controller.Redirect(string url) 

                  如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

JsonResult類

該類用于向客戶端返回一段Json格式的字符串.

在Controller類中的輔助方法為:Controller.Json(object data);

注意:默認(rèn)情況下mvc拒絕響應(yīng)以get方式發(fā)送的ajax請求,需要使用JsonRequestBehavior.AllowGet。

                  如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

PartialViewResult類

該類的作用是向客戶端響應(yīng)Views目錄的一個分部視圖文件。分部視圖就是只包含html片段的視圖文件.

在Controller類中的輔助方法為:Controller.PartialView();

                  如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

下圖演示了在創(chuàng)建視圖文件時,如何創(chuàng)建一個分部視圖文件(勾選“創(chuàng)建為分部視圖”復(fù)選框):

                  如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

FilePathResult類

該類用于實(shí)現(xiàn)文件下載.

在Controller類中的輔助方法為:Controller.File(string filePath, string contentType, string fileName);

                  如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

FileContentResult類

將內(nèi)存中的字節(jié)數(shù)組當(dāng)做文件數(shù)據(jù)直接輸出到客戶端。適合在內(nèi)存中動態(tài)生成文件或?qū)⑿∥募虞d到字節(jié)數(shù)組后輸出。

FileStreamResult類

這個方法會先將文件全部讀入到服務(wù)器內(nèi)存中,進(jìn)行緩沖,然后再發(fā)送到客戶端。這樣做會非常消耗服務(wù)器內(nèi)存,因此應(yīng)避免使用該方法發(fā)送大文件。

EmptyResult類

該類用于向客戶端響應(yīng)一個空結(jié)果。

HttpStatusCodeResult類

該類用于向客戶端相應(yīng)指定的狀態(tài)碼.

HttpNotFoundResult類就是HttpStatusCodeResult的子類,表示404這一狀態(tài)碼。

下面的是一些常用的http狀態(tài)碼:

404:資源未找到(表示客戶端請求服務(wù)器的資源地址不存在)

500:服務(wù)器內(nèi)部錯誤(以5XX開頭的表示服務(wù)器端在處理過程中出現(xiàn)的錯誤)

200:成功(表示客戶端發(fā)送的請求被服務(wù)器成功的處理和響應(yīng))

其他

如何在aspx頁面中導(dǎo)入命名空間?

方式一:在指定的頁面添加<%@ Import Namespace=”命名空間” %>

                 如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

方式二:在項目的web.config配置文件中添加pages---namespaces----add

                 如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容

“如何理解ASP.NET MVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁題目:如何理解ASP.NETMVC數(shù)據(jù)驗(yàn)證及相關(guān)內(nèi)容-創(chuàng)新互聯(lián)
分享鏈接:http://muchs.cn/article46/csgihg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航、小程序開發(fā)、自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站