2016-03-02 47 views
-1

不知道有人能指點我正確的方向嗎?通過'列表'模型進出視圖

基本上我正在嘗試創建一個頁面,允許某人輸入數據(高爾夫)的數量(18)的洞,基本上我不確定它是如何完成的。

在我已經創建了以下模型:

namespace BGSociety.Models 
{ 
public class CreateCourseHolesViewModel 
{ 
    public int holeNumber { get; set; } 
    public int par { get; set; } 
    public int si { get; set; } 
    public int distance { get; set; } 
} 

} 

在控制器我已經得到的指數事件:

TempData的[ 「孔」] = getHoles();

protected List<CreateCourseHolesViewModel> getHoles() 
    { 
     var holes = new List<CreateCourseHolesViewModel>(); 

     for (int i =1; i < 19; i++) 
     { 
      holes.Add(new CreateCourseHolesViewModel { holeNumber = i }); 
     } 
     return holes; 

    } 

而我穿入視圖此:

返回PartialView( 「CreateCourseHoles」,TempData的[ 「孔」]);

在視圖中,我可以遍歷列表並顯示整個數字,每個數字旁邊都有一個文本框,以允許輸入par,si和distance。

var zHoles = TempData["holes"] as IEnumerable<BGSociety.Models.CreateCourseHolesViewModel>; 
    foreach (var hole in zHoles) 
    { 
     <div class="row"> 
      <div class="col-sm-1"> 
       <p>@hole.holeNumber</p> 
      </div> 
      <div class="col-sm-6"> 
       <div class="form-group"> 
        <div class="col-xs-12"> 
         @Html.ValidationMessageFor(m => hole.par) 
         @Html.TextBox("par", TempData["par"], new { @class = "form-control", placeholder = "Par", name = "Par" }) 
        </div> 
       </div> 
      </div> 
     </div> 
    } 

但我不能工作,如何回傳給這個人口稠密的列表控制器爲我的數據輸入到數據庫中。

我錯過了一個很好的機會(!),但如果有人可以騰出幾分鐘的時間來提供幫助,那將是非常棒的!

感謝, SX

+0

首先,你不能使用一個'foreach'循環來生成收集項目的表單控件(參考[這個答案](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)) )。但是你做的其他事情沒有任何意義。並且不要使用'TempData',在你獲得方法的時候,你初始化你的集合並將它傳遞給視圖。 –

回答

0

的TempData並不意味着作爲參數傳遞給您的PartialView傳遞。即使你不把它作爲參數傳遞,你仍然可以訪問它。我建議你這樣做,而不是:

return PartialView("CreateCourseHoles", getHoles()); 

那麼你的部分觀點,你能不能讓

@model IEnumerable<BGSociety.Models.CreateCourseHolesViewModel> 

和包裝所有的表單中循環:

<form method="post" action="wherever you want to post it to"> 

foreach (var hole in Model) 
    { 
     <div class="row"> 
      <div class="col-sm-1"> 
       <p>@hole.holeNumber</p> 
      </div> 
      <div class="col-sm-6"> 
       <div class="form-group"> 
        <div class="col-xs-12"> 
         @Html.ValidationMessageFor(m => hole.par) 
         @Html.TextBox("par", TempData["par"], new { @class = "form-control", placeholder = "Par", name = "Par" }) 
        </div> 
       </div> 
      </div> 
     </div> 
    } 

</form> 
+0

爲那個花蕾歡呼,但我仍然無法看到模型中的18組數據,我只能看到第一個。當它被重新發回給控制器時,我的意思是 – SxChoc