一、拿到數據進行遍歷,加載到下拉框中,v-text取代{{}}防止延遲數據渲染問題
<select id="totalYear" class="yearSel" v-model="yearSelectedTotal" v-on:change="getTotalFeeByType">
<option :value="item.Id" v-for="item in yearOnlineList" v-text="item.Name"></option>
</select>
二、Vue中的Data()以及Created()聲明存放數據的容器
data() {
return {
yearOnlineList: [],
yearSelectedTotal: '',
}
},
created() { // 這里相當於文檔准備就緒函數,用來初始化數據
this.getYearOnline();
this.yearSelectedTotal = new Date().getFullYear();
},
三、動態獲取后台數據
methods: { // 方法
async getYearOnline() {// 獲取系統上線年份
await axios.get('/StatisticsIndicator/GetYearOfSysOnline')
.then(response => {
this.yearOnlineList = response.data.data;
})
.catch(error => {
console.log(error);
});
}
}
四、Controller中處理數據
/// <summary>
/// 獲取系統上線年份
/// </summary>
/// <returns></returns>
public ActionResult GetYearOfSysOnline()
{
//這里是動態獲取系統上線年份
var onlineYear = hbiApp.GetYearOfSysOnline();
var currYear = DateTime.Now.Year;
List<HtmlSelectDto<int>> selList = new List<HtmlSelectDto<int>>() {
new HtmlSelectDto<int> {
Id=0,
Name="全部"
}
};
for (int i = onlineYear; i <= currYear; i++)
{
HtmlSelectDto<int> selectDto = new HtmlSelectDto<int>();
selectDto.Id = i;
selectDto.Name = i + "年";
selList.Add(selectDto);
}
return Json(new { data=selList},JsonRequestBehavior.AllowGet);
}
五、封裝下拉框數據模型
public class HtmlSelectDto<T>
{
public T Id { get; set; }
public string Name { get; set; }
}