2011-10-29 7 views
2

リストから項目を削除するためにajaxフォームを使用します。私が最初に何かを提出すると、それは動作しますが、2回目に、提出されたアイテムの参照は正しくありません。それはまだ使われている最初の参照です。ここで私のAjaxフォームを続けて送信すると、アクションコントローラで同じデータが返されます

は私のAjaxフォームである:ここで

<div> 
    <table>    
     @foreach (var item in Model.ProjectTechnology) 
     { 
      <tr> 
       <td>@Html.DisplayFor(m => item.TechnologyID) </td> 
       <td>@using (Ajax.BeginForm("RemoveLinkedTechnology", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "AddedTechnologies" })) { 
        @Html.Hidden("projectID", item.ProjectID) 
        @Html.Hidden("removedTechnologyID", item.TechnologyID) 
        <input type="submit" value="Suppr" /> 
        }</td> 
      </tr> 
     } 
    </table> 
</div> 

は私のコントローラ内のアクションです:

[HttpPost] 
    public ActionResult RemoveLinkedTechnology(int projectID, string removedTechnologyID) 
    { 
     // some code here... 
    } 

例:最初の投稿:

は、私はこのような提出を進めるとしましょう: AA; 2回目の提出:BB。

最初の呼び出しの場合:removedTechnologyIDにはAAが含まれています。

2回目の呼び出しの場合:removedTechnologyIDにはまだAAが含まれています。

私はあなたのコントローラのアクションにあなたが示されている<table>の内容を更新部分図を戻ってきていると思われる

おかげ

+0

あなたの投稿にはいくつの書式がありますか? 2つ以上の反復があると仮定すると、変更は常に最初のものと同じ形式になりますか? –

+0

レンダリングされたHTMLスニペットに少なくとも2つの削除フォームを投稿してもらえますか? – saintedlama

答えて

2

。 HiddenやTextBoxなどのHtmlヘルパーは、バインドする前にModelStateの値を最初に検索してから、モデル内ではモデル状態にremovedTechnologyID="AA"があり、モデル値を完全に無視します。item.TechnologyIDです。したがって、最初のAJAXリクエストの後にDOMを見た場合、すべての非表示フィールドには古い値が含まれていることがわかります。

  1. クリアお使いのコントローラのアクションでモデルの状態の項目::

    [HttpPost] 
    public ActionResult RemoveLinkedTechnology(int projectID, string removedTechnologyID) 
    { 
        ... 
        ModelState.Remove("removedTechnologyID"); 
        ModelState.Remove("projectID"); 
        return View(...); 
    } 
    
  2. 隠しフィールドを生成するためのヘルパーを使用しないでください:

    は、あなたが3つの可能性を持ってこの問題を解決するために、
    <input type="hidden" name="projectID" value="@item.ProjectID" /> 
    <input type="hidden" name="removedTechnologyID" value="@item.TechnologyID" /> 
    
  3. カスタムを書くHtml.Hiddenモデルステートを見る前にまずモデルの値を使用してください(この回答の対象外です)

+0

ありがとうございます!私はますますMVCを愛しています... – Bronzato

関連する問題