を使用してドロップダウン最初のリクエスト、リストはviewdataから更新され、ユーザーはリフレッシュを押してドロップダウンがajaxリクエストで作成されます。アップデートは、私は、ドロップダウンリストを更新しようとしていますAjax.ActionLink
両方のJSON結果を返そうとしましたが、ドロップダウンは更新されませんでした。 SelectListを返すとき、ドロップダウンは単にクリアされます。
このタスクをどのように達成できますか?
を使用してドロップダウン最初のリクエスト、リストはviewdataから更新され、ユーザーはリフレッシュを押してドロップダウンがajaxリクエストで作成されます。アップデートは、私は、ドロップダウンリストを更新しようとしていますAjax.ActionLink
両方のJSON結果を返そうとしましたが、ドロップダウンは更新されませんでした。 SelectListを返すとき、ドロップダウンは単にクリアされます。
このタスクをどのように達成できますか?
viewデータをもう一度更新するだけで、ビューは同じコードを使用して2番目のショット(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);
}
これは素晴らしいおすすめです、最後の1つより良いダーリン:)あなたに投票しました:) –