我有页码,当在新的上显示它时,我希望它显示10个数字的下拉列表。现在,因为它只是一个int列,它显示为一个文本框。
更改此内容的最简单方法是什么?
答案 0 :(得分:1)
向视图模型添加Collection属性以显示下拉值,并为选定值添加一个。
public class CreatePostVM
{
public string Name { set;get;}
public List<SelectListItem> Pages { set;get;}
public int SelectedPage { set;get;}
public CreatePostVM()
{
Pages =new List<SelectListItem>();
}
}
并在您的GET操作中加载视图模型对象的Pages
集合并发送到视图..
public ActionResult CreatePost()
{
var vm=new CreatePostVM();
//Adding 1 to 10 as per the question
for(int i=0;i<10;i++)
{
vm.Pages.Add(new SelectListItem { Value=i.ToString(), Text=i.ToString()});
}
return View(vm);
}
并在您的视图中,该视图强类型为CreatePostVM
类
@model CreatePostVM
@using(Html.BeginForm())
{
<label>Name :</label> @Html.TextBoxFor(s=>s.Name)
<label>Page :</label> @Html.DropDownListFor(s=>s.SelectedPage,Model.Pages)
<input type="submit" value="Save" />
}
并在您的HttpPost操作中,检查SelectedPage
属性值。
[HttpPost]
public ActionResult CreatePost(CreatePostVM model)
{
var pageNumber=model.SelectedPage;
//do something with the above value
//to do : Save and Redirect
}