2009-06-11 4 views
0

Сценарий: У меня есть выпадающий список, таблица кнопок и html, в которой отображаются данные из модели. Ниже приведен код в ASPX & контроллераmvc частичный пост назад при нажатии кнопки с помощью ajax

Данные отображаются без обратной передачи, когда я нажмите кнопку отправки, но DropDownList & кнопки появляется в два раза, а затем следующие щелчки в порядке.

Должен ли я использовать 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.

Смежные вопросы