我有一个问题Ajax submit
。我有一个 main View
,我在其中渲染 aPartialView
并在最后一个内部加载另一个PartialView
。像这样的东西:
主视图
元素列表 ->
PartialView
1- 在1中创建新元素 ->
PartialView
2PartialView
- 在1中创建新元素 ->
我正在使用AjaxBeginForm
替换和更新选项:
@using (Ajax.BeginForm("Create", "MyController",
new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "form0", HttpMethod = "POST" }))
我的问题是第一次提交效果很好。它保存新元素并重新渲染PartialView
1 (它更新我的列表)。如果想再次提交,它会将我重定向到PartialView
1。
为什么会发生这种情况,我的代码有什么问题?我该怎么做 ?
这是我的控制器操作:
[HttpPost]
public PartialViewResult Create(Model viewModel)
{
viewModel.Save(viewModel.FormModel);
var newViewModel = new DefaultViewModel(viewModel.xID,viewModel.yID);
return PartialView("_DefaultPartialView", newViewModel);
}
没关系,我的操作返回PartialView
? 它应该是类型JsonResult
?
和PartialView
1:
@using (Ajax.BeginForm("CreateBehaviorLog", "BehaviorLog", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "form0", HttpMethod = "POST" }))
{
@model DefaultViewModel
@Scripts.Render("~/bundles/jquery")
<h2>Title</h2>
{ Html.RenderPartial("PartialView2", Model.ModelForPartialView2); }
<div id="listOfELements">
@foreach(var item in Model.X)
{
--list--
}
</div>
}
谢谢你。
更新:
我解决了这个问题(这是一个非常新手的错误)。我明天会发布我的答案,因为现在有点晚了,我需要睡觉!