MVC是一个架构形式,它分离了表现与交互。它被分为三个核心部件:模型、视图、操控器。下面是每一个部件的分工:
视图是用户看到并与之交互的界面。
模型表示业务数据,并供给数据给视图。
操控器承受用户的输入并调用模型和视图去完结用户的需求。
图:MVC(模型、视图、操控器)
你能解释下MVC的完好流程吗?
下面是MVC(模型、视图、操控器)架构的操控流程:
一切的终端用户恳求被发送到操控器。
操控器依赖恳求去挑选加载哪个模型,并把模型附加到对应的视图。
附加了模型数据的最终视图做为呼应发送给终端用户。
MVC一起适用于Windows运用和Web运用吗?
比较Windows运用,MVC架构更适用于Web运用。对于Windows运用,MVP(ModelViewPresenter)架构更好一点。假如你运用WPF和Silverlight,MVVM更适合。
运用MVC有哪些优点?
MVC有两个大的优点:
分离了关注点。后台代码被移到独自的类文件,咱们能够最大极限的重复利用代码。
自动化UI测验成为可能,由于后台代码移到了.NET类。这让咱们更容易做单元测验和自动化测验。
MVC不同于三层架构?
MVC是三层传统架构的演变。三层架构和MVC有一些通用的组成部分。显示如下:
功能性三层/分层架构Modelviewcontrollerarchitecture
显示与交互用户界面视图
UI逻辑用户界面操控器
商业逻辑/验证中间层模型
恳求首要发送给谁?用户界面操控器
拜访数据数据链接层数据链接层
图示:三层架构

asp

MVC的最新版别是哪个?
在写这篇文章时MVC现已发行了4个版别:MVC1,MVC2,MVC3,和MVC4.所以MVC4是最新版别。
每个版别的MVC有什么不同?
下面的表格列出了详细的不同点。但是在面试中限于时间问题,很难去说出一切的东西。所以,我标出了一切重要差异。
MVC2MVC3MVC4
Client-sidevalidation
TemplatedHelpersAreas
AsynchronousControllers
Html.ValidationSummaryHelperMethod
DefaultValueAttributeinAction-Method
Parametersbinding
BinarydatawithModelBinders
DataAnnotationsAttributes
Model-ValidatorProviders
NewRequireHttpsAttributeActionFilter
TemplatedHelpers
DisplayModel-LevelErrors
Razor
Readymadeprojecttemplates
HTML5enabledtemplates
SupportforMultipleViewEngines,JavaScript,andAJAX
ModelValidationImprovements
ASP.NETWebAPI
Refreshedandmodernizeddefaultprojecttemplates.Newmobileprojecttemplate.
Manynewfeaturestosupportmobileapps
Enhancedsupportforasynchronousmethods
MVC中的HTMLhelpers是什么?
HTMLhelpers帮助你渲染视图中的HTML控件。假如在面试中你想展示HTML输入框,下面是HTMLhelper代码。
<%=Html.TextBox(“LastName”)%>
checkbox的代码如下。用这种办法咱们能够创立现存的一切HTML控件。
<%=Html.CheckBox(“Married”)%>
“HTML.TextBox”和“HTML.TextBoxFor”有什么不同?
它们两个输出相同的HTML,“HTML.TextBoxFor”是强类型的,但“HTML.TextBox”不是。下面是一个实例,它仅仅创立了一个姓名为“CustomerCode”的输入框。
Html.TextBox(“CustomerCode”)
下面的代码是用“Html.TextBoxFor”创立的HTML输入框,从目标”m”中调用了特点”CustomerCode“。
Html.TextBoxFor(m=>m.CustomerCode)
相同的办法,咱们能够用“Html.CheckBox”和“Html.CheckBoxFor”创立checkbox。
MVC的路由挑选是什么?
路由挑选功能帮你界说一个URL规矩,映射URL到操控器。
举一个比如,咱们想让用户输入“http://localhost/View/ViewCustomer/”时,它转向到“Customer”操控器而且调用DisplayCustomer。这个经过Maproute办法来界说。代码如下:
routes.MapRoute(“View”,//Routename”View/ViewCustomer/{id}”,//URLwithparametersnew{controller=”Customer”,action=”DisplayCustomer”,
id=UrlParameter.Optional});//Parameterdefaults
在哪里写路由映射表?
在“global.asax”文件。
咱们能够映射多个URL到同一个动作吗?
是的,能够。只需要添加多条不同Key姓名的记载,而且指定同样的操控器和动作。
运用hyperlink生成链接,如何从一个视图链接到另一个视图?
运用ActionLink办法,如下图所示。下面的代码生成一个简单的URL,链接到”Home”操控器的GotoHome动作。
<%=Html.ActionLink(“Home”,”Gotohome”)%>
如何限制一个动作的类型为GET或POST?
咱们能够给MVC的动作一个HttpGet或HttpPost特点去限制HTTP的类型。你能够看下面的代码段,这个DisplayCustomer动作只能用HttpGet办法拜访。假如咱们尝试用Httppost的办法,会看到错误信息。
[HttpGet]
publicViewResultDisplayCustomer(intid)
{
CustomerobjCustomer=Customers[id];
returnView(“DisplayCustomer”,objCustomer);
}

asp.netmvc面试题答案

第1题:什么是ASP.netmvc?
这是一个网络运用的开发结构。轻量型的,很简单测试的一个结构。它把整个运用程序分成三个组件:modelviewcontroller.
第2题:解释一下modelviewcontroller。
Model是数据模型,用来表明运用中咱们运用的数据。
Controller处理各种用户恳求,并且把用户重定位到view。
View便是咱们用户能看到的那一层。
第3题:解释一下mvc4的新的功用。
①异步control的处理。
②JavaScriptBundling.
③装备办法的分离。Mvc途径,webAPI和bundle。
④移动端的模板支撑。
⑤RestAPIservice的模板支撑。
第4题:在创立一个途径的时分,咱们需求哪些组件?
首先是途径姓名。
其次是途径的url。
再一个便是defaults。当被调用的时分,在某个controller里边需求被调用的那个action连同参数。
第5题:mvc对ASP.net的优点在哪里?
①供给十分清晰的成绩管理,像ui层,也便是view,数据层model和管理层controller。
②单元测试比较简单。
③改进了数据模型和视图的重用性。
④代码的结构更加优化。
第6题:什么是separationofconcerns?
是一个分化的进程。把一个大的功用分化成几个小的功用,几个小功用之间堆叠性十分低。对于mvc来说,比较关心从演示层到数据处理分层。
第7题:一个视图是否能在多个controller中分享?
是的,能够。
能够把这个视图放在一个shared的文件夹里边。当咱们在创立一个新的mvc工程的时分,这个layoutpage就会被添加在分享的文件夹里边由于他会被多个子页面调用。
第8题:unobstrusiveJavaScript是什么意思?
这个javascript的意思是说不会把JavaScript内嵌到你的页面的符号里边。
第9题:viewmodel在mvc中的作用是什么?
Viewmodel是一个通常的类,有许多特点它能够绑定到视图上。它也能够经过特点来设定一些验证的规则。
第10题:Mvc中的途径是干什么的?
途径首要有两个部分,一个是途径的那个字符串,还有一个是它的处理函数。经过搜索这个途径以及对应的恳求办法,然后找到对应的处理函数。
第11题:Mvc中的actions是什么?
Actions是controller里边的办法,首要处理两部分内容,一个是视图,别的一个是json数据。它的回来值类型是actionresult,是经过invokeaction这个办法来调用。
第12题:什么是特点途径?
特点途径能够定义在controller层级或者是action层级。从mvc5才开端有的。
第13题:怎么激活特点途径?
在registerRoutes里边添加mapmvcattributeroutes就能够激活特点途径。
第14题:什么是jsonbinding?
从mvc3开端,运用jsonvalueproviderfactory来支撑jsonbinding.答应action办法接收和绑定json类型的数据。这一点在向服务器发送数据的时分十分有用。
第15题:解释一下dependencyresolution.
这个首要是来做dependencyinjection,这样能够使得代码耦合性十分低,能够更简单的进行测试。
第16题:解释一下mvc4中的bundle.config.
这个文件首要是用来注册一些十分有用的程序库像jquery。
第17题:在dotnetmvc中,途径表是怎么创立的?
RegusterRoutes用来注册各种途径,这个办法会在applicationstart办法中被调用,这个办法存在于global.asax文件里边。在程序启动的时分,会被调用。
第18题:为什么运用”{resource}.asd/{*pathinfo}”?
这样做首要是为了防止网络资源文件,比如webresource.asd,或者scriptresource.asd,被传送到一个controller上。
第19题:什么是viewdata?
viewdata,是一个数据字典,有key和value,从viewdatadictionary派生出来的,在action办法中,咱们能够设定viewdata的值,在视图中,咱们能够获取这些值。
第20题:viewbag和viewdata之间的区别是什么?
viewbag是viewdata的一个扩展。扩展以后能够创立动态的特点。这样的优点有:不需求进行类型的转换。咱们能够运用dynamic关键字。
但是有一个缺陷便是viewbag要比viewdata慢一些。
第21题:解释一下tempdata。
是从tempdatadictionary派生出来的,跟viewdata很相似,它也是key和value的对组合。它首要用在两个恳求的交互傍边,它们可能是两个actions或者两个controllers。它在视图中运用的时分需求类型转换。
第22题:什么是htmlHelpers?
Htmlhelpers相当于在传统的webform中的控件。但是它更轻量级,不会保存企图的状况和事情。
它回来html字符串,它能够直接被显示的网页上。从htmlhelper时派生能够自定义htmlhelpers。
第23题:什么是ajaxhelpers?
它是用来对网页表格进行进一步恳求的机制,它的扩展办法存在于System.Web.Mvc。
第24题:有哪些装备ajaxhelper的选项?
Url,这是恳求的链接。
Confirm这个是用来指定显示的确认音讯。
Onbegin这个办法是在ajax恳求之前被调用。
OnComplete,这个办法会在ajax恳求之后被调用。
Onsuccess当ajax恳求成功时,这个办法会被调用。
Onfailure,当ajax恳求失败时,这个办法会被调用。
UpdatetriggerID.在action回来的html中会存在目标元素,这个ID便是对应这个元素的。
第25题:解释一下renderbody和renderpage。
renderbody就相当于在网页表格中的contentplaceholder。它存在于layout页面傍边,一个layout页面只有一个renderbody。而在一个layout页面傍边能够有多个renderpage.

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。