首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击按钮后,局部视图显示为布局null

单击按钮后,局部视图显示为布局null
EN

Stack Overflow用户
提问于 2019-01-17 18:35:40
回答 2查看 99关注 0票数 0

我有一个视图,该视图由2个部分Views.One部分视图组成,部分视图具有FormSubmit,当表单提交者单击它时,它需要转到下一个部分视图,我尝试过了,但问题是第二个部分视图显示为没有布局

主视图

代码语言:javascript
复制
 <div class="card-body px-1 px-md-5 pt-5" id="cartpartial">
            @Html.Partial("_PartialView1",Model)


        </div>
        <div class="card-body px-1 px-md-5 pt-5" id="deliverypartial">
            @Html.Partial("_PartialView2",Model)
        </div>

_PartialView1

代码语言:javascript
复制
@model XYZ.Domain.MyModel

@using (Html.BeginForm("UpdateNewsItem", "Home", FormMethod.Post))
{
//Some Code Here
 <input type="submit" class="btn btn-primary rounded-pill btn-lg" value="Next" />
}

_PartialView2

代码语言:javascript
复制
@model XYZ.Domain.MyModel
//Some Code Here

控制器开机自检

代码语言:javascript
复制
[HttpPost]
 public ActionResult UpdateNewsItem(MyModel model)
 {
  // Some code here
  return PartialView("_PartialView2", model);
 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-18 11:35:15

我的朋友。很抱歉回复得太晚了。这是我的解决方案。你可以参考。希望能帮上忙:)

主视图

代码语言:javascript
复制
<div class="card-body px-1 px-md-5 pt-5" id="cartpartial">
    @{Html.RenderPartial("_PartialView1", Model);}

</div>
<div class="card-body px-1 px-md-5 pt-5" id="deliverypartial">
    @{Html.RenderPartial("_PartialView2", Model);}
</div>

@section scripts{
    <script>
        $(document).on('click', '#btnSubmit', function () {
            $(this).prop('disabled', true); //prevent multiple click
            $.ajax({
                url: '@Url.Action("UpdateNewsItem", "Home")',
                type: 'POST',                
                data: $('#form1').serialize(),
                success: function(result){                    
                    $('#deliverypartial').html(result);
                    $('#cartpartial').hide(); //you can hide partial view 1 if you want
                }
             });
        });
    </script>
}

_PartialView 1

代码语言:javascript
复制
@using (Html.BeginForm("UpdateNewsItem", "Home", FormMethod.Post, new { id = "form1"}))
{
    <div class="col-md-12">
        @Html.TextBoxFor(t => t.Email)
        <input type="button" class="btn btn-primary rounded-pill btn-lg" value="Next" id="btnSubmit" />
    </div>

}
票数 1
EN

Stack Overflow用户

发布于 2019-01-17 21:40:58

我不确定你说的“它需要转到下一个局部视图”是什么意思,但你没有布局的原因只是因为你使用了它们的组合:

代码语言:javascript
复制
@using (Html.BeginForm("UpdateNewsItem", "Home", FormMethod.Post))

这就是说你想要更新你所有的页面,并且:

代码语言:javascript
复制
return PartialView("_PartialView2", model);

这意味着在没有任何东西的情况下刷新你的部分内容。

如果您的需求只是从“购物车”步骤转到“交付”步骤,但在更新数据时仍将这两个步骤放在同一视图中。我建议使用

代码语言:javascript
复制
@using (Ajax.BeginForm("UpdateNewsItem", "Home", ...

这意味着只更新页面的一部分。确保在您的布局中包含"jquery.unobtrusive-ajax.js“(它在NuGet中可用),没有它它将无法工作。

希望它能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54234000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档