2013-10-26 59 views
1

我需要一個操作結果在我的控制器中保存來自用戶的內嵌版本。我成功地使用源自http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx的edmx創建列表,但是當我保存時我不知道如何處理actionresult。ActionResult更新數據庫在MVC4中的動態列表

見我cstml:

@model List<SCP___AgroGerente.Models.VeiculoFazendaUsuario> 

@{ 
    ViewBag.Title = "Index"; 
} 

<div class="Cabecalho"> 
    <div class="left"> 
     <h2>Lista de Veículos</h2> 
     <h4>Aqui você cadastra as Veículos</h4> 
    </div> 
    <div class="right" style="padding-top: 28px"> 

     @Html.ActionLink(" ", "Create", string.Empty, new { @class = "icone new" }) 

    </div> 
    <div class="clear"></div> 

    <hr /> 
</div> 
<table class="tabelaFormatada"> 
    <tr> 
     <th>Especificação 
     </th> 
    </tr> 
    @using (Html.BeginForm()) 
    { 
     for (int i = 0; i < Model.Count(); i++) 
     { 

     <tr> 
      <td> 
       @Html.EditorFor(m => Model[i].VeiculoEspecificacao); 
      </td> 
     </tr> 
     } 
     <p> 
      <input type="submit" value="Salvar Alterações" /> 
     </p> } 
</table> 

回答

0

你說你要更新的列表,但你的行動鏈接指向一個創建方法。如果您正在執行更新,則需要將操作鏈接的操作指向執行更新的方法。讓我知道你是否需要一個例子。

您需要在控制器中的POST方法中返回模型。如果您保留默認的腳手架,它應該已經在那裏。

它應該是這個樣子......

public ActionResult Create() 
    { 
     return View(); 
    } 

    // 
    // POST: /booking/Create 

    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create(booking booking) 
    { 
     if (ModelState.IsValid) 
     { 
      db.bookings.Add(booking); 
      db.SaveChanges(); 
     } 

     return View(booking); 
    } 

第一種方法是GET方法。第二個是POST方法,當你點擊提交按鈕時會調用這個方法。

第二種方法返回模型對象的默認視圖。如果我想要返回不同的視圖,我會指定這樣的視圖...

return查看(「_ myotherview」,booking);

你是什麼意思的「內聯editiing」?