2009-06-11 4 views
0

シナリオ: モデルからのデータを表示するドロップダウン、ボタン、htmlテーブルがあります。 以下は、私が送信ボタンをクリックしたときにmvc ajaxを使用してボタンをクリックすると部分的に戻る

データがポストバックせずに表示されているASPX &コントローラのコードですが、ドロップダウンリスト&ボタンを2回表示され、その後、次のクリックは大丈夫です。

どこでもHtml.RenderPartialを使用してください。

//Controller 
[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult SimpleUpdate(int carMake) 
     { 
      ViewData["CarMake"] = new SelectList(_carDataContext.Makes.Select(m => new { ID = m.Id, Name = m.Name }), "ID", "Name", carMake); 
      var carModel = _carDataContext.Models.Where(m => m.MakeId == carMake).ToList(); 
      return PartialView("carmodels", carModel); 
     } 

// in aspx 
    <%using (Ajax.BeginForm("SimpleUpdate", new AjaxOptions { UpdateTargetId = "ajaxPanel" })) 
      {%> 
     <%=Html.DropDownList("CarMake")%> 
     <br /> 
     <input type="submit" value="SimpleUpdate" /> 
     <% 
      }%> 
     <div id="ajaxPanel"> 
      <% 
       if (Model != null) 
       { 
      %> 
      <table> 
       <tr> 
        <th> 
         Id 
        </th> 
        <th> 
         Name 
        </th> 
        <th> 
         MakeId 
        </th> 
       </tr> 
       <% 

        foreach (var item in Model) 
        {%> 
       <tr> 
        <td> 
         <%=Html.Encode(item.Id)%> 
        </td> 
        <td> 
         <%=Html.Encode(item.Name)%> 
        </td> 
        <td> 
         <%=Html.Encode(item.MakeId)%> 
        </td> 
       </tr> 
       <% 
        }%> 
      </table> 
      <%}%> 
     </div> 

答えて

0

この場合、通常ビューではなく部分的なビュー(ユーザーコントロールのような)を作成する必要があります。また、Html.RenderPartialのコントロールとして、メインビューに部分ビューを追加する必要があります。

関連する問題