You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core编辑视图自动重复提交表单问题求助

问题描述

我有一个用于获取信息的基础Controller,进入Edit视图时表单会自动提交两次,导致代码运行异常。我未使用JavaScript提交表单,尝试用JS阻止表单提交但无效。

控制器代码

[HttpGet]
//[PreventDuplicateFormSubmissionAttribute]
public async Task<IActionResult> Edit(int id)
{
    var RulePlanViewModel = new RulePlanViewModel();
    var EditRulePlanCustomModel = new EditRulePlanCustomModel();
    EditRulePlanCustomModel.RulePlanViewModel = new RulePlanViewModel();
    await using var connection = Connection.GetOpenConnection(_config.GetConnectionString("BetterCompareStagingLatest"));
    var query = string.Format(@"SELECT 
                                    UWRP.ID,
                                    UWRP.CreateDate,
                                    UWRP.CreateBy,
                                    UWLR.RuleName,
                                    UWLR.ID RuleID,
                                    UWLP.ID PlanID,
                                    UWLP.PlanName
                                FROM uw_D_RulePlans UWRP
                                LEFT OUTER JOIN uw_L_Rules UWLR ON UWLR.ID = UWRP.RuleID
                                LEFT OUTER JOIN uw_L_Plan UWLP ON UWLP.ID = UWRP.PlanID WHERE UWRP.ID = @id");
    EditRulePlanCustomModel.RulePlanViewModel = connection.Query<RulePlanViewModel>(query, new { id = id }).FirstOrDefault();


    var query2 = string.Format(@"SELECT * FROM uw_L_Plan");
    EditRulePlanCustomModel.uw_L_PlanList = new List<uw_L_Plan>();
    var data2 = connection.Query<uw_L_Plan>(query2).ToList();
    EditRulePlanCustomModel.uw_L_PlanList = data2;

    var query3 = string.Format(@"SELECT * FROM uw_L_Rules");
    EditRulePlanCustomModel.uw_L_RulesList = new List<uw_L_Rules>();
    var data3 = connection.Query<uw_L_Rules>(query3).ToList();
    EditRulePlanCustomModel.uw_L_RulesList = data3;

    EditRulePlanCustomModel.PlansDDL = new SelectList(EditRulePlanCustomModel.uw_L_PlanList, "ID", "PlanName", EditRulePlanCustomModel.RulePlanViewModel.PlanID);
    EditRulePlanCustomModel.RulesDDL = new SelectList(EditRulePlanCustomModel.uw_L_RulesList, "ID", "RuleName", EditRulePlanCustomModel.RulePlanViewModel.RuleID);
    return View(EditRulePlanCustomModel);
}

视图代码

@model VCS.Underwriting.Models.EditRulePlanCustomModel
<div class="content container-fluid">
    <form>
        <div class="form-group">
            <div class="col-md-10">
                <select class="js-select2-custom custom-select" size="1" style="opacity: 0;" asp-for="RulePlanViewModel.RuleID" asp-items="Model.RulesDDL"
                        data-hs-select2-options='{
                                                "minimumResultsForSearch": "Infinity",
                                                "placeholder": "Select Rule"
                                                }'>
                    <option label="empty"></option>
                </select>
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-10">
                <select class="js-select2-custom custom-select" size="1" style="opacity: 0;" asp-for="RulePlanViewModel.PlanID" asp-items="Model.PlansDDL"
                        data-hs-select2-options='{
                                                "minimumResultsForSearch": "Infinity",
                                                "placeholder": "Select Rule"
                                                }'>
                    <option label="empty"></option>
                </select>
            </div>
        </div>
        <input type="hidden" value="@Model.RulePlanViewModel.ID" />
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </form>
</div>

内容的提问来源于stack exchange,提问作者Zain Nabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 03:33:31