2010-11-27 3 views
1

를 사용하여 드롭 다운 첫 번째 요청은 목록이 viewdata에서 업데이트 된 다음 사용자가 새로 고침을 누르고 드롭 다운이 ajax 요청을 통해 채워집니다.업데이트 내가 드롭 다운 목록을 업데이트하려고 Ajax.ActionLink

두 JSON 결과를 모두 반환하려고했는데 드롭 다운이 업데이트되지 않았습니다. SelectList를 반환하면 드롭 다운이 지워집니다.

이 작업을 어떻게 수행 할 수 있습니까?

답변

0

뷰가 다시 Ajax 리턴 인 두 번째 샷을 위해 동일한 코드를 사용하여 업데이트 할 수 있도록 뷰 데이터를 다시 업데이트하십시오. 그리고 Json을 사용하지 않아도됩니다. 어떻게 진행되는지 알려주세요.

당신은 부분 ( Names.ascx)에이 드롭 다운을 넣을 수
1

: 메인 뷰 사용이 편집기 템플릿 다음

<%@ Control Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<YourApp.Models.SomeViewModel>" %> 
Names: <%: Html.DropDownList(x => x.SelectedName, Model.Names) %> 

과 :

<div class="editor-field"> 
    <span id="names"><% Html.RenderPartial("Names"); %></span> 
    <%: Ajax.ActionLink("Refresh", "Names", 
     new AjaxOptions { UpdateTargetId = "names", HttpMethod = "GET" }) %> 
</div> 

을 그리고 당신은 작업을 같이 할 수 컨트롤러 :

public ActionResult Names() 
{ 
    var model = new SomeViewModel 
    { 
     // TODO: fetch the names from db: 
     Names = new SelectList(new[] { 
      new { Id = "1", Text = "name 1" }, 
      new { Id = "2", Text = "name 2" }, 
      new { Id = "3", Text = "name 3" }, 
     }, "Id", "Text") 
    } 
    return View(model); 
} 
+0

이것은 좋은 추천입니다, 마지막 하나, nice darin보다 낫습니다 :) –

관련 문제