razor 视图中的常用函数,用于在多个视图页面中生成下拉列表

Common function in razor view to generate drop down in multiple view pages

我有一个包含多个下拉菜单的页面,带有类似

的选项
<option>1<option>
<option>2<option>
<option>3<option>

<option>-5<option>
<option>-6<option>
<option>-7<option>

所以我创建了一个函数来在 razor 视图中生成下拉选项。

 @functions {
        public List<SelectListItem> GenerateDropDown(int startvalue, int endValue)
        {
            var dropDownList = new List<SelectListItem>();
            for (int i = startvalue; i <= endValue; i++)
            {
                string val = i.ToString();
                dropDownList.Add(new SelectListItem { Text = val, Value = val });
            }
            return dropDownList;
        }
}

并像这样使用

 @Html.DropDownListFor(m => m.xyz, GenerateDropDown(1, 10))
 @Html.DropDownListFor(m => m.Abc, GenerateDropDown(2, 20))

这个工作正常,但我想在多个页面中使用相同的函数,没有代码重复我尝试使用辅助方法,但没有人可以建议我如何集中 GenerateDropDown 函数。

创建静态 Class,其中包含静态方法 GenerateDropDown。

假设

       public static class GeneratorHelper{

         public static List<SelectListItem> GenerateDropDown(int startvalue, int endValue)
            {
                var dropDownList = new List<SelectListItem>();
                for (int i = startvalue; i <= endValue; i++)
                {
                    string val = i.ToString();
                    dropDownList.Add(new SelectListItem { Text = val, Value = val });
                }
                return dropDownList;
            }
       }

现在在剃须刀中,您只需将 class 用作:

GeneratorHelper.GenerateDropDown(1,5);