我有一个带有一组按钮的主窗体,里面还有一个局部视图。当我在部分视图和单独的部分视图中进行操作时,父表单上的按钮不起作用。
父视图(具有批次列表)
<div class="" id="addEditBatch">
@{
Html.RenderPartial("~/Views/Partial/BatchPartial.cshtml", Model);
}
</div>
@if (Model.Id != 0)
{
a data table of results..each row contains edit and delete actions
<table>......
<td class="text-center">
<button type="button" class="btn-bootstrap-dialog btn btn-xs btn-default" data-url="@Url.Action("CheckItem", "MyController", new {id = @item.id})">
</button>
</td>
</table>
}
局部视图
@{
string actionName = "AddBatch";
if (Model != null && Model.Id > 0)
{
actionName = "EditBatch";
}
Layout = null;
}
@using (Ajax.BeginForm(actionName, new { id = Model?.Id }, new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "addEditBatch", InsertionMode = InsertionMode.Replace }))
{
<div id="divBatch" class="container-fluid">
<div>@Html.ValidationSummary(false)</div>
<div class="returnMessage">@Html.Raw(TempData["Message"])</div>
-------
------
<div class="col-md-offset-1 col-md-6">
<input type="submit" name="save" id="btnSave" value="Save" class="btn btn-primary btn-xs noWarn" style="margin-left: 20px;") />
<input type="button" name="cancel" id="btnCancel" value="Cancel" class="btn btn-primary btn-xs" style="margin-left: 20px;" onclick="onCancel(@Model.Id)" />
</div>
}
控制器操作
[HttpPost]
public ActionResult EditBatch(BatchForm batchForm)
{
ValidateBatchModelState(batchForm);
if (ModelState.IsValid)
{
var result = myService.EditBatch(batchForm, User.UserId());
if (result != null && result.IsSuccess)
{
return View("Partial/BatchPartial", result.Data);
}
}
return View("Partial/BatchPartial", batchForm);
}
问题是当我们以局部形式编辑任何内容时-上面显示的控制器(EditBatch)会单独击中并渲染局部视图。然后,当我单击主页上的任何按钮(如ParentView数据表中显示的EditBelowItem)时,什么都没有发生。但是我可以在局部视图中单击并执行任何操作。
因此,基本上,从post操作渲染一次局部视图之后,似乎只有局部视图在起作用,父窗体上的所有按钮都不起作用。我必须再次刷新整个页面才能使它们工作。任何想法,可能出什么问题了吗?
感谢您的投入。 谢谢!