一、拿到数据进行遍历,加载到下拉框中,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; } }