当前位置: 首页 > 知识库问答 >
问题:

MVC,显示依赖于下拉(ajax)的模态内容

松越
2023-03-14

我不知道怎么做这样的事。我有一个六元素的下拉列表,还有一个按钮。当我点击按钮时,我想显示bootstrap modalpopup。这是一个简单的问题。但是我想知道tt取决于选择下拉列表。

我的看法是:

<button type="button" class="btn btn-default" data-toggle="modal" data-target=".bs-example-modal-lg-addCompanyRisk">
                <i class="fa fa-plus"></i> Add
            </button>

<div class="modal fade bs-example-modal-lg-addCompanyRisk" tabindex="-1" role="dialog" aria-hidden="true" id="allCustomerModal">
            <div class="modal-dialog modal-lg">
                <div class="modal-content">

                 [... Load index from other view...]
                    <div class="modal-body">                            
                        <button type="submit" class="btn btn-default" data-dismiss="modal">@Resources.Common.Cancel</button>
                    </div>
                </div>
            </div>
        </div>

列表的内容是解决一个模态应该依赖于下拉列表。如果Backet所有的表单和按钮(class="btn btn-默认")是一个提交,那么我不知道如何从ActionResult(控制器)显示模态

编辑

我部分解决了我的问题。我添加到下拉Ajax。开始表格并提交

    @using (Ajax.BeginForm("GetAllRiskForCompanu", "InsuranceCompanyRisks", null, new AjaxOptions
    {
        HttpMethod = "Post",
    }))
    {
        @Html.AntiForgeryToken()


        @Html.DropDownListFor(model => model.InsuranceCompanyId, ViewBag.InsuranceCompany as SelectList, @Resources.Common.Select, new { @class = "form-control", @required = "required", onchange = "$(this.form).submit();" })
        @Html.ValidationMessageFor(model => model.InsuranceCompanyId, "", new { @class = "text-danger" })
    }

on控制器写入方法:

[HttpPost]
public Void GetAllRiskForCompanu(FormCollection form)
{
    int? companyId = form["InsuranceCompanyId"].GetNullableInt();

    if (companyId.HasValue)
    {
        //set session varible
        InsurancePolicySession.InsuranceCompanyRisks = icrf.GetAll(companyId.Value);
    }

}

通过“添加”按钮,我使用render partialView显示modala

   @Html.Partial("~/Views/InsurancePolicyItem/IndexPolicyCompanyRisk.cshtml", @InsurancePolicySession.InsuranceCompanyRisks)

当我更改下拉选择值时,会话将刷新,但当我显示modal时,仍会查看旧值。

共有1个答案

宗政法
2023-03-14

与使用AjaxForm和直接操作引导模式相比,您可能会发现使用类似于引导盒的工具更容易,它将根据需要生成引导模式。

我将使用标准形式:

@using(Html.BeginForm("action", "controller", FormMethod.Post, new { id="some-id", role="form" }))
{
    @Html.DropDownListFor(m => m.SomeId, Model.Somethings, new { @class="form-control" })
    <button type="submit" class="btn btn-default">Submit</button>
}

然后,捕获表单提交并执行Ajax请求以获取您的内容:

$(function(){

    $('#some-id').on('submit', function(e){

        e.preventDefault(); // prevent normal form submit

        var form = $(this);
        var data = form.serialize();

        $.post(form.attr('action'), data)
            .done(function(response, status, jqxhr){
                // handle response...
            })
    })
})

在成功处理程序(.done())中,建立您的对话框。Bootbox具有用于警报、确认和提示的内置函数(其主要目的是复制这些本机函数),但您可能需要使用dialog(),它允许您完全自定义模式。您可能希望阅读文档以充分利用它,但基本用法可以是(从上面的//handle response…开始):

var dialog = bootbox.dialog({
    title: 'Some Title',
    message: response,
    buttons: {

        cancel: {
            label: 'Cancel',
            className: 'btn-default',
            callback: function(){
                dialog.modal('hide');
            }
        },

        save: {
            label: 'Submit',
            className: 'btn-primary',
            callback: function(){
                // submit your data from the injected content, somehow...
            }
        }

    }
});

此时我主要使用Bootbox,因为我发现它比在页面上使用模式模板更容易。我还遇到了与您似乎遇到的问题相同的问题,即重用模式似乎不想更新其内容。

免责声明:我目前是Bootbox项目的合作者,尽管我在那里主要是为了使文档保持最新和分类问题。

 类似资料:
  • 我有剑道网格,我需要在两个单元格中内联编辑两个下拉列表。第二个列表依赖于第一个列表。第二个可以有0个或X个项目。当秒为0时,如何在保存项目时向服务器发送空值? 网格如下所示: 操作编辑器模板: 当我单击“保存”时,我在请求中始终具有操作的默认值。谢谢你的帮助!

  • 我的方法我尝试使用名称范围为我的2列。然后转到下一个工作表并创建2列(CountryInput,CitiesInput)。在名为CountryInput的专栏中,我进入数据验证工具以创建第一个下拉列表。CitiesInput列应该依赖于CountryInput是我遇到的问题。我尝试使用indirect=a2函数,但没有任何结果。 我也可以使用vba或宏来做这件事吗?

  • 我有一个应用程序,在JSP页面中,我显示一个下拉列表,但我的代码中有一个例外。 控制器类别:- addDetails.jsp·佩奇 我得到了以下异常:- 它只是一个Spring MVC Web应用程序,我试图在其中显示预先填充了颜色数据的卓尔向下列表。 非常感谢任何帮助。

  • 我正在尝试编写一些相当基本的代码,但多年来没有接触过JavaScript,我真的不确定最好的方法是什么。 目标:有一个42个竞技场部分数字的下拉列表,当选择这些数字时,将根据该数字显示“红色”或“黑色”。为了提供过多信息,部分编号是: 黑色:103, 105, 107, 111, 113, 115, 119, 121, 123, 127, 129, 131, 201, 203, 205, 207,

  • 我有三个下拉框。我的第一个下拉选择框如下所示 我的第二个看起来是这样的 第三个是这样的 如果从第一个下拉列表中选择值3,则只能从第二个和第三个下拉列表中选择三个选项(即1、2、3)。 该选项的其余部分应禁用或不可选。 如果从第二个下拉列表中选择值2,第三个下拉列表应该只能选择1。((即3-2)),反之亦然。 类似地,对于第一个下拉框 中选择的所有可能选项值,都应应用相同的逻辑 为我的查询建议jav

  • 我在五月有一个剑道MVC下拉列表。我正在成功地将所选值从中保存到数据库中。当我来编辑数据时,该值从模型中正确返回并在下拉树中设置,但是,在下拉树中没有任何项目被视觉上选中。 当我尝试从单击按钮读取下拉树的值时,它正确地返回该值。 上面的javascript警报正确返回该值,但在DropdownTree中没有显示选定的项目。我还尝试删除ValuePrimitive属性,但没有任何效果。 有人能帮我找