呈现部分视图时,父窗体不起作用-MVC RenderPartial C#

时间:2019-03-11 17:27:20

标签: c# asp.net-mvc-4 model-view-controller asp.net-ajax renderpartial

我有一个带有一组按钮的主窗体,里面还有一个局部视图。当我在部分视图和单独的部分视图中进行操作时,父表单上的按钮不起作用。

  1. 父视图(具有批次列表)

      <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>
      }
    
  2. 局部视图

    @{
            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>
     }
    
  3. 控制器操作

    [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操作渲染一次局部视图之后,似乎只有局部视图在起作用,父窗体上的所有按钮都不起作用。我必须再次刷新整个页面才能使它们工作。任何想法,可能出什么问题了吗?

感谢您的投入。 谢谢!

0 个答案:

没有答案