ASP.net mvc面试49题

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的路径。他用在客户端调试场景。可以通过本地的链接来激活打开。这是一个非常流行而有用的调试工具,它可以跟踪速度细节,网页细节等等。

码字不易,请关注点赞!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容