我正在尝试使用Ajax和Partial视图更新我的视图的一部分,但是我遇到了一些麻烦: 这是我的控制器:
[HttpPost]
public ActionResult Index(StatModel model)
{
if (ModelState.IsValid)
{
switch (model.SelectedStat)
{
case "agR" :
List<agR> agentr = nbrAGbyR(model.SelectedItemsRegion.ToList());
return PartialView("_agByR", agentr);
case "demandeR":
List<demandeR> demander = nbrDMbyR(model.SelectedItemsRegion.ToList());
return PartialView("_dmByR", demander);
... Other case option ....
}
}
..
return PartialView();
}
这是我的Index.cshtml查看:
@model pfebs0.Models.StatModel
...
<div class="row">
<div class="col-md-6">
<h2>Statistique Par region</h2>
@using (Ajax.BeginForm("Index", new AjaxOptions
{
UpdateTargetId = "result",
InsertionMode = InsertionMode.InsertAfter,
HttpMethod = "POST"
}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.ListBoxFor(m=>m.SelectedItemsRegion, (ViewBag.REGIONID as SelectList))
@Html.DropDownListFor(m=> m.SelectedStat, Model.statList)
<p>
<input type="submit" value="Create" />
</p>
}
...
<div class="col-md-10">
<h2>Resultat</h2>
<div id="result"></div>
</div>
...
这是我的partialView示例:
@model List<pfebs0.Models.agR>
@using GridMvc.Html
<h3 id="agR">Statistique Agent generaux par region</h3>
@Html.Grid(Model).Named("agR").Columns(columns =>
{
columns.Add(model => model.nbr)
.Sortable(false)
.Titled("Nombre des Agent's");
columns.Add(model => model.regionName)
.Sortable(true)
.Titled("Nom du region");
}).WithPaging(10)
当我点击提交按钮时,没有任何事情发生,这里有什么问题?
答案 0 :(得分:2)
请原谅我只是发布了另一个答案的链接,但这可能就是您要找的内容:Using Ajax.BeginForm with ASP.NET MVC 3 Razor。
就个人而言,我从来没有使用过Ajax.BeginForm并且总是使用jquery来表达我的ajaxiness。这个答案确实告诉你如何做到这一点,因为你可能会错过不引人注目的ajax js脚本声明,但我不知道你的截断代码。
希望有帮助!