類型輔助方法可幫助您設置DevExtreme控件,它們允許在編譯時查看代碼驗證、提供完整的 IntelliSense 支持、添加基于數據注釋的客戶端驗證,并支持顯示屬性。
DevExtreme Complete Subscription官方最新版免費下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網
您可以使用兩種 DevExtreme 強類型輔助方法:
這些方法將控件綁定到由 lambda 表達式指定的模型屬性,這種方法允許您在不使用字符串常量的情況下配置控件。
注意:要將控件綁定到模型屬性,請在 @model 指令 (Razor C#) 或 @ModelType 指令 (Razor VB) 中指定模型。
下面的示例演示了創建 DateBox 控件并將其綁定到 OrderViewModel 模型的 OrderDate 屬性的 DateBoxFor 方法。
Razor C#
Razor VB
ControlFor 方法可用于具有自己模型的局部視圖。 下面的示例演示了使用 DevExtreme 強類型輔助方法(DateBoxFor、TextBoxFor)以及內置輔助方法(LabelFor?、ValidationMessageFor?)的局部視圖。
_MyPartial.cshtml
_MyPartial.vbhtml
注意:要將控件綁定到模型,請在輔助方法中將模型指定為類型參數。 該控件將表示來自該模型的數據,而不是來自當前視圖的模型的數據。
下面的示例代碼將強類型的 DataGrid 添加到 OrderViewModel 類型,AddFor() 方法配置網格列,此方法將列綁定到由 lambda 表達式指定的模型屬性。
Razor C#
Razor VB
使用強類型輔助方法配置的控件支持以下內置 ASP.NET Core 顯示屬性:
您可以使用這些屬性替代API 方法來配置控制選項,例如以下代碼演示了如何使用 API 方法來配置 Form 控件的 FullName 數據字段(其標簽、描述和占位符):
模型
C#
VB
Razor C#
Razor VB
作為替代方案,您可以使用顯示屬性來配置相同的控制選項。 下面的代碼演示了如何將 [Display] 屬性附加到 Person 模型的 FullName 屬性,當您將 Form 控件綁定到 Person 模型時,將應用該屬性。
模型
C#
VB
Razor C#
Razor VB
下圖顯示了結果:
DevExtreme | 下載試用
DevExtreme擁有高性能的HTML5 / JavaScript小部件集合,使您可以利用現代Web開發堆棧(包括React,Angular,ASP.NET Core,jQuery,Knockout等)構建交互式的Web應用程序。從Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含全面的高性能和響應式UI小部件集合,可在傳統Web和下一代移動應用程序中使用。 該套件附帶功能齊全的數據網格、交互式圖表小部件、數據編輯器等。
ASP.net mvc面試49題
大家好,這一期呢,我們來談一下ASP.net mvc的面試題。
第1題, 什么是ASP.net mvc?
這是一個網絡應用的開發框架。輕量型的,很容易測試的一個框架。它把整個應用程序分成三個組件: model view controller.
第2題, 解釋一下model view controller。
Model是數據模型,用來表示應用中我們使用的數據。
Controller處理各種用戶請求,并且把用戶重定位到view。
View就是我們用戶能看到的那一層。
第3題,解釋一下mvc 4的新的功能。
異步control的處理。
JavaScript Bundling.
配置方法的分離。Mvc路徑,web API和bundle。
移動端的模板支持。
Rest API service的模板支持。
第4題, 介紹一下mvc頁面的life cycle。
app initialization.
Routing.
Instantiate and execute controller.
Locate and invoke controller action.
Instantiate and render view.
第5題, mvc對ASP.net的好處在哪里?
提供非常清晰的成績管理,像ui層,也就是view, 數據層model和管理層controller。
單元測試比較容易。
改善了數據模型和視圖的重用性。
代碼的結構更加優化。
第6題, 什么是separation of concerns?
是一個分解的過程。把一個大的功能分解成幾個小的功能,幾個小功能之間重疊性非常低。對于mvc來說,比較關心從演示層到數據處理分層。
第7題什么是razor view engine?
這個引擎提供了數據綁定的顯示模板。
@model MvcStore.Models.Customer
@{ViewBag.Title="Get Customers";}
<div class="cust"><h3><em>@Model.CustomerName</em></h3></div>
第8題, unobstrusive JavaScript是什么意思?
這個javascript的意思是說不會把JavaScript內嵌到你的頁面的標記里面。
第9題,view model在mvc中的作用是什么?
Viewmodel是一個通常的類,有很多屬性它可以綁定到視圖上。它也可以通過屬性來設定一些驗證的規則。
第10題,Mvc中的路徑是干什么的?
路徑主要有兩個部分,一個是路徑的那個字符串,還有一個是它的處理函數。通過搜索這個路徑以及對應的請求方法,然后找到對應的處理函數。
第11題, Mvc中的actions是什么?
Actions是controller里面的方法,主要處理兩部分內容,一個是視圖,另外一個是json數據。它的返回值類型是action result,是通過invoke action這個方法來調用。
第12題,什么是屬性路徑?
屬性路徑可以定義在controller層級或者是action層級。從mvc 5 才開始有的。
第13題,如何激活屬性路徑?
在registerRoutes里面添加map mvc attribute routes就可以激活屬性路徑。
第14題,什么是json binding?
從mvc3開始,使用json value provider factory來支持json binding. 允許action方法接收和綁定json類型的數據。這一點在向服務器發送數據的時候非常有用。
第15題,解釋一下dependency resolution.
這個主要是來做dependency injection,這樣可以使得代碼耦合性非常低,可以更容易的進行測試。
第16題,解釋一下mvc4中的bundle.config.
這個文件主要是用來注冊一些非常有用的程序庫像jquery。
第17題,在dot net mvc中,路徑表是如何創建的?
RegusterRoutes用來注冊各種路徑,這個方法會在application start方法中被調用,這個方法存在于global.asax文件里面。在程序啟動的時候,會被調用。
第18題,在mvc中比較重要的name spaces有哪些?
System.web.mvc, System.web.mvc.ajax, System.web.mvc.html, System.web.mvc.async
第19題,什么是view data?
view data,是一個數據字典,有key和value,從view data dictionary派生出來的,在action方法中,我們可以設定viewdata的值,在視圖中,我們可以獲取這些值。
第20題,view bag 和 view data之間的區別是什么?
view bag是view data的一個擴展。擴展以后可以創建動態的屬性。這樣的好處有:
不需要進行類型的轉換。
我們可以使用dynamic關鍵字。
但是有一個缺點就是view bag要比view data慢一些。
第21題, 解釋一下temp data。
是從temp data dictionary派生出來的,跟view data很類似,它也是key和value的對組合。它主要用在兩個請求的交互當中,它們可能是兩個actions或者兩個controllers。它在視圖中使用的時候需要類型轉換。
第22題,什么是html Helpers?
Html helpers相當于在傳統的web form中的控件。但是它更輕量級, 不會保存試圖的狀態和事件。
它返回html字符串,它可以直接被顯示的網頁上。從html helper時派生可以自定義html helpers。
第23題, 什么是ajax helpers?
它是用來對網頁表格進行進一步請求的機制,它的擴展方法存在于System.Web.Mvc。
第24題,有哪些配置ajax helper的選項?
Url, 這是請求的鏈接。
Confirm這個是用來指定顯示的確認消息。
On begin這個方法是在ajax請求之前被調用。
On Complete, 這個方法會在ajax請求之后被調用。
On success當ajax請求成功時,這個方法會被調用。
On failure, 當ajax請求失敗時,這個方法會被調用。
Update trigger ID.在action返回的html中會存在目標元素, 這個ID就是對應這個元素的。
第25題,什么是mvc的layout?
它相當于傳統的網頁表格中的主頁。它可以在多個頁面中被引用。
@{
layout = "~/views/shared/testlayout.cshtml"};
}
這個地方,這個test layoutout作為一個子頁面。
第26題,解釋一下sections?
Sections是html頁面的一部分。
@rendersection("testsection")
在子頁面中我們定義如下的sections。
@section testsection {
<h1>test content</h1>
}
如果這個section沒有定義的話會出錯,我們可以使用一個required屬性來防止頁面出錯。
@rendersection("testsection", required: false)
第27題, 解釋一下render body和render page。
render body就相當于在網頁表格中的content place holder。它存在于layout頁面當中,一個layout頁面只有一個render body。而在一個layout頁面當中可以有多個render page.
第28題,什么是view start page?
這個頁面是用來制作通用的layout頁面,它可以被多個視圖使用,在這個文件里的代碼,會在程序加載的時候首先被執行。
第29題,解釋一下顯示視圖的方法。
View在action中返回的是一個視圖。
Partial view, 它是在action中返回一部分視圖。
Redirect to action.它是用來重定向到不同的action里面,它可以在一個controller里面也可以在不同的controller里面。
第30題,action result的子類型是什么?
View result. Partial view result, redirect to route result, redirect result, JavaScript result, file result, HTTP status code result.
第31題,什么是非action方法?
在mvc中所有的公開方法都被認為是actions.如果你不想讓你的方法作為actions,那你就需要添加non action屬性。
[nonaction]
public void testmethod(){
}
第32題,如何改變action的名字?
可以使用action name屬性來改變action的名字。
[actionname("testactionview")]
第33題,什么是視圖代碼塊?
這些代碼塊兒非常適合定義變量。
@{
int x=123;
string y="aa";
}
第34題, 什么是helperpage.ajax屬性?
這個屬性主要是用來指明在一個網頁中是否用了ajax.
第35題, 如何在mvc中,當dropdownlist改變的時候調用一個JavaScript的函數?
在on change的時候設定這個JavaScript方法的調用就可以了。
第36題,什么是validation anotations?
數據anotations存在于system.componentmodel.data .anotations. 它可以用作服務器端的驗證也可以用作客戶端的驗證。有4個屬性一個是required,一個是string length,一個是regular expression,一個是range。
第37題,為什么要使用html.partial?
這個方法用來顯示html string指定的某塊視圖。
html.partial("testpartialview")
第38題,什么是html.Renderpartial?
這個方法向response里面寫入數據的。沒有任何返回值。
@{html.renderpartial("testpartialview")}
第39題, 什么是scaffold模板?
用來生成controller, model, views, 對應的是create, read, update, delete,這些功能操作。
第40題,解釋一下scaffoldings的類型。
Empty
Create
Delete
Details
Edit
List
第41題,一個視圖是否能在多個controller中分享?
是的,可以。
可以把這個視圖放在一個shared的文件夾里面。當我們在創建一個新的mvc工程的時候,這個layout page就會被添加在分享的文件夾里面因為他會被多個子頁面調用。
第42題, 在創建一個路徑的時候,我們需要哪些組件?
首先是路徑名字。
其次是路徑的url。
再一個就是defaults。當被調用的時候,在某個controller里面需要被調用的那個action連同參數。
第43題, 為什么使用"{resource}.asd/{*pathinfo}"?
這樣做主要是為了防止網絡資源文件,比如web resource.asd,或者script resource.asd,被傳送到一個controller上。
第44題, 我們如何向一個路徑添加constraints?
我們可以通過regular expressions。
也可以通過Irouteconstraint接口.
第45題, razor視圖的可能擴展名是什么?
cshtml
vbhtml
第46題,什么是partial view?
Partial view相當于傳統網頁表格中的user controls.
它的主要目的是為了重復使用這些視圖,他們一般被放在一個共享文件夾里面。
html.partial()
html.renderpartial()
第47題, 如何向mvc中添加css?
使用link tag。
第48題, 能否用visual studio express向mvc添加測試案例?
不能,只有專業版和ultimate終極版才可以。
第49題,.glimpse 的作用是什么?
它是一個開源工具,用來調試mvc的路徑。他用在客戶端調試場景。可以通過本地的鏈接來激活打開。這是一個非常流行而有用的調試工具,它可以跟蹤速度細節,網頁細節等等。
碼字不易,請關注點贊!
evExtreme Complete Subscription官方最新版免費下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網
要調用方法,請使用 JavaScript API。 例如,您有一個 Popup 控件:
Razor C#
@(Html.DevExtreme().Popup()
.ID("popup")
)
Razor VB
@(Html.DevExtreme().Popup() _
.ID("popup")
)
該控件在調用其 show() 方法后出現在頁面上,下面的代碼演示了如何調用此方法。
JavaScript
$("#popup").dxPopup("show");
注意:要在 JavaScript 中訪問客戶端小部件實例,請將 dx 前綴添加到小部件名稱中,例如 dxPopup。
您可以將提供的代碼放在任何 JavaScript 結構中并執行它,例如,當用戶單擊按鈕時……
Razor C#
@(Html.DevExtreme().Button()
.OnClick("showPopup")
)
<script>
function showPopup() {
$("#popup").dxPopup("show");
}
</script>
Razor VB
@(Html.DevExtreme().Button() _
.OnClick("showPopup")
)
<script>
function showPopup() {
$("#popup").dxPopup("show");
}
</script>
…或者一旦你的頁面準備好了
<script>
$(showPopup);
function showPopup() {
$("#popup").dxPopup("show");
}
</script>
如果被調用的方法接受參數,則在方法名稱之后傳遞它們。 例如,以下代碼以 true 作為參數調用 Popup 控件的 toggle(showing) 方法。
$("#popup").dxPopup("toggle", true);
DevExtreme | 下載試用
DevExtreme擁有高性能的HTML5 / JavaScript小部件集合,使您可以利用現代Web開發堆棧(包括React,Angular,ASP.NET Core,jQuery,Knockout等)構建交互式的Web應用程序。從Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含全面的高性能和響應式UI小部件集合,可在傳統Web和下一代移動應用程序中使用。 該套件附帶功能齊全的數據網格、交互式圖表小部件、數據編輯器等。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。