在MVC應用程序中優化依賴下拉加載
> >本文介紹了MVC應用程序中兩個互連下拉列表(狀態和城市)的有效加載。 一種常見的方法涉及使用Ajax在州選擇時填充城市下拉菜。但是,這可以顯著改善。
>增強方法:
雖然Ajax仍然是一個可行的選擇,但幾種增強功能提高了效率和可維護性:
1。利用ViewModels:使用ViewModel來合併狀態和城市下拉屬性,將數據傳輸簡化為視圖。
2。擁抱不引人注目的JavaScript:與HTML標記單獨的JavaScript邏輯,以提供更好的代碼組織和可維護性。 這提高了可讀性並簡化了未來的修改。
3。實現“請選擇”選項:在兩個下拉列表中都包含一個帶有空值的“請選擇”選項。這有助於使用屬性的服務器端驗證。 >
[Required]
html:
>
> javaScript:<code class="language-html">@Html.DropDownListFor(m => m.StateID, Model.States, "Select State") @Html.DropDownListFor(m => m.CityID, Model.Cities, "Select City")</code>
進一步的增強:
<code class="language-javascript">const url = '@Url.Action("GetCities", "Home")'; const citiesDropdown = $('#CityID'); $('#StateID').change(function() { $.getJSON(url, { stateId: $(this).val() }, function(data) { citiesDropdown.empty().append($('<option/>').val('').text('Please select')); $.each(data, function(index, item) { citiesDropdown.append($('<option/>').val(item.Value).text(item.Text)); }); }); });</code>
緩存:對於廣泛的城市數據集,實現數據緩存,以最大程度地減少經常訪問的狀態的冗餘數據庫查詢。
以上是如何在MVC中有效地加載兩個依賴的下拉列表(狀態和城市)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!