百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

ASP.net mvc面试49题

bigegpt 2024-08-23 11:56 3 浏览


?

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

码字不易,请关注点赞!

相关推荐

悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)

新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...

高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源

凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...

微服务架构实战:商家管理后台与sso设计,SSO客户端设计

SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...

还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑

在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...

Seata源码—6.Seata AT模式的数据源代理二

大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...

30分钟了解K8S(30分钟了解微积分)

微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

一招解决所有依赖冲突(克服依赖)

背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...

你读过Mybatis的源码?说说它用到了几种设计模式

学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...

golang对接阿里云私有Bucket上传图片、授权访问图片

1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...

spring中的资源的加载(spring加载原理)

最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...

Android资源使用(android资源文件)

Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...

如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)

深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...

@Autowired与@Resource原理知识点详解

springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...

java的redis连接工具篇(java redis client)

在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...