<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # MVC 面試的前 31 個問題&答案 > 原文: [https://www.guru99.com/mvc-interview-questions.html](https://www.guru99.com/mvc-interview-questions.html) **1)解釋什么是模型-視圖-控制器?** MVC 是用于開發 Web 應用程序的軟件體系結構模式。 它由三個對象 Model-View-Controller 處理。 **2)提到在 MVC 應用程序中 Model-View-Controller 代表什么?** 在 MVC 模型中, * **模型**-代表應用程序數據域。 換句話說,應用程序業務邏輯包含在模型中,并負責維護數據 * **視圖**-代表最終用戶與之通信的用戶界面。 簡而言之,所有用戶界面邏輯都包含在 VIEW 中 * **控制器**-響應用戶操作的控制器。 基于用戶動作,各個控制器在模型內做出響應,并選擇一個視圖來渲染顯示用戶界面。 用戶輸入邏輯包含在控制器中 **3)解釋在哪個程序集中定義了 MVC 框架?** MVC 框架在 System.Web.Mvc 中定義。 **4)列出幾種不同的控制器動作方法返回類型?** * 查看結果 * Javascript 結果 * 重定向結果 * 杰森結果 * 內容結果 **5)提及向 We??bform 應用程序和 MVC 應用程序添加路由之間的區別是什么?** 要將路由添加到 Webform 應用程序,我們可以使用 RouteCollection 類的 MapPageRoute()方法,在路由添加到 MVC 應用程序的過程中,可以使用 MapRoute()方法。 ![](https://img.kancloud.cn/38/cd/38cdb6dc5ffb25c7cc473816a6f1f14e_375x375.png) **6)提及向路線添加約束的兩種方法是什么?** 向路線添加約束的兩種方法是 * 使用正則表達式 * 使用實現 IRouteConstraint 接口的對象 **7)提到 MVC 有什么優勢?** * MVC 將您的項目分為不同的部分,開發人員可以輕松進行 * 易于編輯或更改項目的某些部分,從而減少項目的開發和維護成本 * MVC 使您的項目更加系統化 **8)提到控制器中的“ beforFilter()”,“ beforeRender”和“ afterFilter”函數是做什么的?** * **beforeFilter()**:該功能在控制器中的每個動作之前運行。 在這里檢查活動會話或檢查用戶權限是正確的地方。 * **beforeRender()**:在控制器操作邏輯之后但在呈現視圖之前調用此函數。 如果您在給定操作結束之前手動調用 render(),則該函數并不經常使用,但可能是必需的 * **afterFilter()**:在每個控制器操作之后以及渲染完成之后,將調用此函數。 這是最后運行的控制器方法 **9)解釋組件表示,抽象和控制在 MVC 中的作用?** * **演示文稿**:它是應用程序中特定抽象的直觀表示 * **抽象**:它是應用程序中的業務領域功能 * **控件**:這是一個組件,除了與系統內的其他控件進行通信外,還可以保持系統內抽象與向用戶呈現之間的一致性。 **10)提到 MVC 模型的優缺點?** | **優勢** | **劣勢** | | * 代表業務邏輯和表示邏輯之間的清晰區分 * 每個 MVC 對象都有不同的職責 * 并行進行開發 * 易于管理和維護 * 所有類和對象彼此獨立 | * 模型模式很少復雜 * 數據訪問效率低 * 使用現代用戶界面,很難使用 MVC * 您需要多個 并行開發的程序員 * 需要多種技術知識 | **11)解釋“ ActionFilters”在 MVC 中的作用嗎?** 在 MVC 中,“ ActionFilters”可幫助您在執行 MVC 動作或其執行期間執行邏輯。 **12)解釋執行 MVC 項目的步驟是什么?** 執行 MVC 項目的步驟包括 * 收到申請的第一個請求 * 執行路由 * 創建 MVC 請求處理程序 * 創建控制器 * 執行控制器 * 調用動作 * 執行結果 **13)解釋什么是路由? 路由重要的三個部分是什么?** 路由可幫助您確定 URL 結構并使用 Controller 映射 URL。 對于路由而言,三個重要的部分是 * 控制器名稱 * 動作方法名稱 * 參數 **14)說明如何以 MVC 模式進行路由?** 有一組路由稱為 RouteCollection,由應用程序中已注冊的路由組成。 RegisterRoutes 方法在此集合中記錄路由。 路由定義 URL 模式和如果請求與模式匹配則使用的處理程序。 MapRoute 方法的第一個參數是路由的名稱。 第二個參數將是 URL 匹配的模式。 第三個參數可能是占位符的默認值(如果未確定)。 **15)使用超鏈接解釋如何從一個視圖導航到另一視圖?** 通過使用“ ActionLink”方法,如下面的代碼所示。 下面的代碼將創建一個簡單的 URL,該 URL 有助于導航到“ Home”控制器并調用“ GotoHome”動作。 折疊/復制代碼 <%= Html.ActionLink(“ Home”,“ Gotohome”)%> **16)提到如何在 MVC 中維護會話?** 可以通過 tempdata,viewdata 和 viewbag 三種方式在 MVC 中維護會話。 **17)提及臨時數據,視圖和視圖包之間的區別是什么?** * 臨時數據:當您從一個控制器轉移到另一控制器時,它有助于維護數據。 * 查看數據:當您從控制器移至視圖時,它有助于維護數據 * View Bag:這是圍繞視圖數據的動態包裝 **18)什么是 MVC 中的局部視圖?** MVC 中的部分視圖呈現視圖內容的一部分。 這有助于減少代碼重復。 簡而言之,局部視圖允許在父視圖中渲染視圖。 **19)說明如何在 MVC 中實現 Ajax?** 在 MVC 中,可以通過兩種方式實現 Ajax * Ajax 庫 * jQuery 的 **20)提及“ ActionResult”和“ ViewResult”之間有什么區別?** “ ActionResult”是一個抽象類,而“ ViewResult”是從“ AbstractResult”類派生的。 “ ActionResult”具有許多派生類,例如“ JsonResult”,“ FileStreamResult”和“ ViewResult”。 如果要動態派生不同類型的視圖,則“ ActionResult”最好。 **21)說明如何在 MVC 中以 JSON 格式發送結果?** 為了以 MVC 格式將結果發送回 JSON,可以使用“ JSONRESULT”類。 **22)解釋“視圖”和“部分視圖”之間的區別是什么?** | **查看** | **部分視圖** | | * 它包含布局頁面 * 呈現任何視圖之前,呈現 viewstart 頁面 * 視圖可能具有諸如 body,html,head,title,meta 等標記標簽。 與部分視圖 相比,* 視圖不輕巧 | * 它不包含布局頁面。 * 部分視圖未驗證 viewstart.cshtml。 我們無法將局部視圖的通用代碼放入 viewStart.cshtml.page * 局部視圖是專門為在視圖內呈現而設計的,僅因為它不包含任何標記 * 我們可以將常規視圖傳遞給 RenderPartial 方法 | **23)列出 MVC 中結果的類型嗎?** 在 MVC 中,MVC 中有十二種類型的結果,其中“ ActionResult”類是主要類,而 11 種是它們的子類型 * 查看結果 * PartialViewResult * 空結果 * 重定向結果 * RedirectToRouteResult * JsonResult * JavaScriptResult * 內容結果 * FileContentResult * FileStreamResult * FilePathResult **24)提及 NonActionAttribute 的重要性是什么?** 如果要阻止此默認方法,則將控制器類的所有公共方法都視為操作方法,然后必須為該公共方法分配 NonActionAttribute。 **25)提及默認路由{resource} .axd / {* pathinfo}的用途是什么?** 此默認路由可防止對 Web 資源文件(如 Webresource.axd 或 ScriptResource.axd)的請求傳遞到控制器。 **26)如果實現了多個過濾器,請提及執行過濾器的順序?** 過濾順序如下 * 授權過濾器 * 動作過濾器 * 響應過濾器 * 異常過濾器 **27)提到最后要執行哪些過濾器?** 最后執行“異常過濾器”。 **28)提到剃刀視圖的文件擴展名是什么?** 對于 razor 視圖,文件擴展名是 * .cshtml:如果 C#是編程語言 * .vbhtml:如果 VB 是編程語言 **29)提及向路線添加約束的兩種方法是什么?** 向路由添加約束的兩種方法是 * 使用正則表達式 * 使用實現 IRouteConstraint 接口的對象 **30)提到兩個未實現或不需要路由的實例嗎?** 不需要路由的兩個實例是 * 找到與 URL 模式匹配的物理文件 * 禁用 URL 模式的路由時 **31)提及使用 MVC 的主要好處是什么?** 使用 MVC 有兩個主要好處 * 將代碼移到單獨的類文件后,您可以在很大程度上使用代碼 * 由于將代碼簡單地移到了.NET 類,因此可以自動進行 UI 測試。 這為自動化手動測試和編寫單元測試提供了機會。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看