Во-первых, я нуб ASP.NET MVC. Это мой первый проект с ASP.NET MVC, поэтому я все еще учусь. Последние два года я работал в WPF и XAML.
Итак, вот моя проблема: у меня есть три каскадных списка. Второй список данных зависит от первого, а третий зависит от второго. Я хочу использовать обновления Ajax для заполнения данных в каждом списке.
Вот мой Index.cshtml:
@model WebApplication.Models.DevelopmentModel
<!DOCTYPE html>
<html>
<head>
<title>Dashboard</title>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
</head>
<body class="body" scroll="auto">
<div class="page">
<div class="content">
<div id="lists">
@Html.Partial("DevelopmentListsView", Model)
</div>
</div>
</div>
</body>
</html>
Мой DevelopmentListsView.cshtml выглядит так:
@model WebApplication.Models.DevelopmentModel
@using (Ajax.BeginForm("Index", "Development", new AjaxOptions() { UpdateTargetId = "lists" } ))
{
@Html.ListBoxFor(m => m.SelectedApplication, new SelectList(ViewBag.Applications), new { onchange = "this.form.submit();" })
@Html.ListBoxFor(m => m.SelectedVersion, new SelectList(ViewBag.Versions), new { onchange = "this.form.submit();" })
@Html.ListBoxFor(m => m.SelectedFlow, new SelectList(ViewBag.Flows) )
}
Моя модель выглядит так:
public class DevelopmentModel
{
public string SelectedApplication { get; set; }
public string SelectedVersion { get; set; }
public string SelectedFlow { get; set; }
}
И мой контроллер выглядит так:
public class DevelopmentController : Controller
{
//
// GET: /Development/
public ActionResult Index()
{
FillViewBag();
return View(new DevelopmentModel());
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(DevelopmentModel model)
{
FillViewBag(model);
return PartialView("DevelopmentListsView", model);
}
private void FillViewBag(DevelopmentModel model = null)
{
//Magic to get all three lists dependent on the available data in the model:
ViewBag.Applications = applications;
ViewBag.Versions = versions;
ViewBag.Flows = flows;
}
}
Теперь я хочу использовать обратные вызовы Ajax для извлечения данных, чтобы они не обновлялись каждый раз, но когда я щелкаю по одному из элементов списка, на этой странице отображается только представление DevelopmentListsView после этого, но ничего не обновляется. .
Может кто-нибудь сказать мне, что я делаю не так?
Спасибо за внимание!