【问题标题】:Modal Dialog No Redirect模态对话框无重定向
【发布时间】:2019-06-02 14:03:19
【问题描述】:

我使用 C# MVC 版本 5。我在模式对话框中有一个表单,它使用局部视图。我想提交表单而不是重定向。我只想关闭对话框。这个可以吗?

这是我的代码:

<div class="modal-dialog modal-lg">
    <div class="modal-content">
        <div class="modal-header bg-success">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h5 class="modal-title">@title</h5>
        </div>
        @using (Html.BeginForm("Edit", "Region", FormMethod.Post, new { onsubmit = "return validateForm();", @class = "form-horizontal" }))
        {
            <div class="modal-footer">
                <button type="button" class="btn btn-link" data-dismiss="modal">Close</button>
                <button type="submit" class="btn btn-success">Submit form</button>
            </div>
        }        
    </div>
</div>
public ActionResult Edit(int id)
{
    RegionViewModels regionViewModels = MakeRegionViewModels(id);
    return PartialView("_InsertTaxRegion", regionViewModels);
}

【问题讨论】:

标签: c# asp.net-mvc


【解决方案1】:

您可以在没有 jQuery 代码的情况下使用 Bootstrap 模式来做到这一点。

在我要显示模式的页面上。您的模态表单 (PartialView) 将显示在您已经打开的视图之上。

<button id="btn" type="button" class="btn btn-info btn-lg" data-toggle="modal" data-       target="#myModal">Open Modal</button>
 <!-- Modal -->
<div id="myModal" class="modal fade" role="dialog" data-toggle="modal">
    <div class="modal-dialog">
    <!-- Modal content-->
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
            @Html.Partial("Modal");
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" 
              data-dismiss="modal">Close</button>
        </div>
    </div>
</div>

您的模态显示在 PartialView...

@model NCR.Models.Employee
@{
    ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
   <div class="form-horizontal">
   <div class="form-group">
       @Html.LabelFor(model => model.FIRST_NAME, htmlAttributes: 
       new { @class = "control-label col-md-2" })
       <div class="col-md-10">
        @Html.EditorFor(model => model.FIRST_NAME, 
        new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.FIRST_NAME, "", 
        new { @class = "text-danger" })
    </div>
</div>
<div class="form-group">
    @Html.LabelFor(model => model.LAST_NAME, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.LAST_NAME, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.LAST_NAME, "", new { @class = "text-danger" })
    </div>
</div>
<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" value="Update" class="btn btn-default" />
    </div>
</div>

}

【讨论】:

    【解决方案2】:

    使用 jQuery,您可以将表单数据序列化并在后台将其发送到服务器,然后您可以关闭您的模态框,这是一个示例: How to use jquery $.post() method to submit form values

    如果您使用的是&lt;input type="submit" /&gt; 而不是&lt;button type="button"&gt;Submit&lt;/button&gt;,那么您需要阻止您的表单像这样提交: Using JQuery - preventing form from submitting

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多