2013-12-11 18 views
0

我有頁碼,並且在創建新的時候顯示它時,我希望它顯示10個數字的下拉列表。現在,因爲它只是一個int列,所以它顯示爲一個文本框。將文本框的數字下拉爲int數據庫列

什麼是最簡單的方法來改變這種情況?

+0

什麼阻止您將其顯示爲下拉菜單? – Shyju

+0

@shyju,如果我顯示爲一個下拉菜單,該值如何填充到我的頁碼中?我是否需要命名下拉編號?PageNumber – datatest

+0

查看答案 – Shyju

回答

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 
} 
+1

嗯,是非常有意義的 – datatest

相關問題