를 사용하여 드롭 다운 첫 번째 요청은 목록이 viewdata에서 업데이트 된 다음 사용자가 새로 고침을 누르고 드롭 다운이 ajax 요청을 통해 채워집니다.업데이트 내가 드롭 다운 목록을 업데이트하려고 Ajax.ActionLink
두 JSON 결과를 모두 반환하려고했는데 드롭 다운이 업데이트되지 않았습니다. SelectList를 반환하면 드롭 다운이 지워집니다.
이 작업을 어떻게 수행 할 수 있습니까?
를 사용하여 드롭 다운 첫 번째 요청은 목록이 viewdata에서 업데이트 된 다음 사용자가 새로 고침을 누르고 드롭 다운이 ajax 요청을 통해 채워집니다.업데이트 내가 드롭 다운 목록을 업데이트하려고 Ajax.ActionLink
두 JSON 결과를 모두 반환하려고했는데 드롭 다운이 업데이트되지 않았습니다. SelectList를 반환하면 드롭 다운이 지워집니다.
이 작업을 어떻게 수행 할 수 있습니까?
뷰가 다시 Ajax 리턴 인 두 번째 샷을 위해 동일한 코드를 사용하여 업데이트 할 수 있도록 뷰 데이터를 다시 업데이트하십시오. 그리고 Json을 사용하지 않아도됩니다. 어떻게 진행되는지 알려주세요.
당신은 부분 (Names.ascx
)에이 드롭 다운을 넣을 수
: 메인 뷰 사용이 편집기 템플릿 다음
<%@ 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);
}
이것은 좋은 추천입니다, 마지막 하나, nice darin보다 낫습니다 :) –