Asp.net core mvc 具有多参数don';t到达柱控制器

Asp.net core mvc 具有多参数don';t到达柱控制器,asp.net-core-mvc,bootstrap-modal,Asp.net Core Mvc,Bootstrap Modal,我有一个web应用程序,它使用模式表单来确认我的用户(或管理员)可以执行的某些操作。模态表单设置取自Microsoft的IdentitySample应用程序项目,并以与此不同的基本相同的方式合并到我的项目中。我使用的是一般情态形式。我试图允许一个用户在一个应用程序上拥有多个用户角色(而他们的示例假定该用户只有一个角色) 我现在正在为这种类型的多角色维护场景制定角色删除。我应该指出,所有只涉及一个id的代码实例都可以正常工作,这是一个包含两个id的实例,它无法通过控制器上我需要的任何一个id 删除

我有一个web应用程序,它使用模式表单来确认我的用户(或管理员)可以执行的某些操作。模态表单设置取自Microsoft的IdentitySample应用程序项目,并以与此不同的基本相同的方式合并到我的项目中。我使用的是一般情态形式。我试图允许一个用户在一个应用程序上拥有多个用户角色(而他们的示例假定该用户只有一个角色)

我现在正在为这种类型的多角色维护场景制定角色删除。我应该指出,所有只涉及一个id的代码实例都可以正常工作,这是一个包含两个id的实例,它无法通过控制器上我需要的任何一个id

删除用户角色需要用户和角色的密钥。 我的控制器有一些代码,如下面所示,用于接受ID并呈现一个模式表单,这非常好地工作

[HttpGet]
public IActionResult DeleteUserRole( string userid, string roleid ){...}
HttpPost部分看起来像这样

[HttpPost]
public IActionResult DeleteUserRole( string userid, string roleid, IFormCollection form ){...}
但是,第二个操作永远不会获取传递给模态forms get方法的id

在所有只有一个路由id的方法中,我没有问题。只有这一种方法让我烦恼。我从这个链接中调用它。请注意这两个asp路由变量,我怀疑这是我问题的核心,但是get调用对此没有问题,因为post没有值:

<a id="deleteRoleModal" asp-action="DeleteUserRole"
 asp-route-userid="@item.userId" asp-route-roleid="@item.roleId"
 data-toggle="modal" data-target="#modal-action-role" 
 class="btn btn-sm btn-danger">
我的模态形式与IdentitySampleProject中使用的示例非常相似,如图所示,它没有以任何有意义的方式进行更改,但在单参数回调时仍能正常工作:

@model string
@using MyModels

<form asp-action="DeleteUserRole" role="form">
    @Html.AntiForgeryToken()
    @await Html.Partial( "_ModalHeader", new ModalHeader { Heading = "Delete User Role" } )

    <div class="modal-body form-horizontal">
        Are you sure you want to delete user role @Model?
    </div>
    @await Html.Partial( "_ModalFooter", new ModalFooter { SubmitButtonText = "Delete" } )
</form>
@模型字符串
@使用MyModels
@Html.AntiForgeryToken()
@等待Html.Partial(“_ModalHeader”,new ModalHeader{Heading=“Delete User Role”})
是否确实要删除用户角色@模型?
@等待Html.Partial(“_ModalFooter”,new ModalFooter{submitbuttonext=“Delete”})
我正在寻找解决这个问题的方向。我希望双路径ID确实是我的问题,但我在样本中似乎找不到其他人做类似的事情

生成的管理页面大致如下所示:

@await Html.Partial( "_Modal", new BootstrapModel { ID = "modal-action-role", AreaLabeledId = "modal-action-role-label", Size = ModalSize.Medium } )
<!DOCTYPE html>
<html>
<head>
    <title>my company</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="/lib/bootswatch/spacelab/bootstrap.min.css" />
    <link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css" />
    <link rel="stylesheet" href="/css/site.css" />
    <link rel="stylesheet" href="/css/navTabs.css" />
    <link rel="stylesheet" href="/css/partner.css" />
</head>

<body>

    <div id="header">
        <div class="slideContainer">
            <div class="slide"><img src="/image/Firm-small2.jpg" alt="Offices" class="headerImage" /></div>
            <div class="slide"><img src="/image/InLibrary225.jpg" alt="Library" class="headerImage"></div>
            <div class="slide"><img src="/image/DSC_9999editSM.JPG" alt="Offices" class="headerImage" /></div>
            <div class="slide"><img src="/image/DSC_9925edit2SM.JPG" alt="Computer Room" class="headerImage" /></div>
        </div>

        <nav class="navbar navbar-inverse">
                <ul class="nav navbar-nav navbar-right ">
                    <li class="navtext">
                        <label>-- &nbsp;&nbsp;&nbsp;Welcome: Webmaster &nbsp;&nbsp;&nbsp;</label>
                    </li>
                </ul>
            <ul class="nav navbar-nav navbar-right">
                <li class="navtext">
                    <label>Your Proven Partner in Cartoon Drawing</label>
                </li>
            </ul>

        </nav>

    </div>

    <div id="sidebar">
        <div><img src="/image/headerLogo.gif" alt="my company Logo" class="logoImage" /></div>

        <nav id="menu">
            <ul class="nav navbar-inverse">
                <li><a href="/">Home</a></li>
                <li>
                    <div id="menuGroupItem">
                        <a href="/Partners">Partners</a>
                        <a data-toggle="collapse" data-target="#partnerMenu"><i class="fa fa-chevron-down"></i></a>

                    </div>
                    <ul id="partnerMenu" class="nav collapse" role="menu" aria-labelledby="partnerMenu">
                        <li><a href="/Partners/PartnerBio/Eddy%20A%20Fish"><i class="fa fa-caret-right"></i> Eddy A Fish</a></li>
                        <li><a href="/Partners/PartnerBio/Tom%20A%20Hawk%20III"><i class="fa fa-caret-right"></i> Tom A Hawk</a></li>
                    </ul>
                </li>
                <li><a href="/App/OurServices">Services</a></li>
                <li><a href="/Events/News">News</a></li>
                <li><a href="/Events/Events">Events</a></li>
                <li><a href="/Events/Pubs">Publications</a></li>
                <li><a href="/App/FirmHistory">Firm History</a></li>
                <li><a href="/App/Contact">Contact</a></li>
                    <li class="divider"></li>
                    <li><a href="/Auth">Manage Website</a></li>
                    <li><a href="/Auth/Logout">Logout</a></li>
            </ul>
        </nav>
        <div class="affiliation">
            <table>
                <tr>
                    <td>
                        <img src="/image/WBE_color_rgb_UP25.jpg" alt="" class="affiliationImage" />
                    </td>
                </tr>
            </table>
        </div>

        <div>
            <ul class="rightAlign">
                <li>&nbsp;</li>
                <li>my company</li>
                <li>16 main street</li>
                <li>anytown, pa 00000</li>
                <li>&nbsp;</li>
                <li>610.111.1111</li>

            </ul>
        </div>

    </div>

    <div id="wrapper">
        <div id="main" class="container-fluid">

<div class="row">
    <div class="col-md-8 col-md-offset-2">
<form action="/Users/UserRole/a2c77901-4a74-49aa-9354-1fadc943c8c4" method="post"><input id="UserId" name="UserId" type="hidden" value="a2c77901-4a74-49aa-9354-1fadc943c8c4" /><input id="UserName" name="UserName" type="hidden" value="BioEditor" />            <h3>Add roles for user: <span class="text-success">BioEditor</span></h3>
            <div>
                <div class="form-group">
                    <table class="table table-responsive">
                        <thead>
                            <th>Role</th>
                            <th>Action</th>
                        </thead>
                        <tbody>
                                <tr>
                                    <td><i class="fa fa-check text-success"> </i>BioEditor</td>
                                    <td>
                                        <a id="deleteRoleModal" data-toggle="modal" data-target="#modal-action-role" class="btn btn-sm btn-danger" href="/Users/DeleteUserRole?userid=a2c77901-4a74-49aa-9354-1fadc943c8c4&amp;roleid=8b12b24d-5836-46eb-a7aa-0be1818a67f5">
                                            <i class="fa fa-trash"></i> Delete
                                        </a>
                                    </td>
                                </tr>
                                <tr>
                                    <td><i class="fa fa-check text-success"> </i>PowerEditor</td>
                                    <td>
                                        <a id="deleteRoleModal" data-toggle="modal" data-target="#modal-action-role" class="btn btn-sm btn-danger" href="/Users/DeleteUserRole?userid=a2c77901-4a74-49aa-9354-1fadc943c8c4&amp;roleid=c4f3bdf8-b880-423c-8de3-1e51329da104">
                                            <i class="fa fa-trash"></i> Delete
                                        </a>
                                    </td>
                                </tr>
                                <tr>
                                    <td><i class="fa fa-check text-success"> </i>Administrator</td>
                                    <td>
                                        <a id="deleteRoleModal" data-toggle="modal" data-target="#modal-action-role" class="btn btn-sm btn-danger" href="/Users/DeleteUserRole?userid=a2c77901-4a74-49aa-9354-1fadc943c8c4&amp;roleid=f1aafc1e-0527-4542-8f0e-fb1afeccac46">
                                            <i class="fa fa-trash"></i> Delete
                                        </a>
                                    </td>
                                </tr>
                        </tbody>

                    </table>
                </div>
                <div class="form-group">
                    <div class="input-group">
                        <select class="input-group form-control" data-val="true" data-val-required="The ApplicationRoleId field is required." id="ApplicationRoleId" name="ApplicationRoleId">
                            <option>Please select</option>
                        <option value="8b12b24d-5836-46eb-a7aa-0be1818a67f5">BioEditor</option>
<option value="c4f3bdf8-b880-423c-8de3-1e51329da104">PowerEditor</option>
<option value="f1aafc1e-0527-4542-8f0e-fb1afeccac46">Administrator</option>
<option value="fe77274d-4b16-46a6-8177-a84faf198c9b">EventEditor</option>
</select>

                        <span class="input-group-btn">
                            <button type="submit" class="btn btn-sm btn-success"><i class="fa fa-user"> </i> Add Selected Role </button>
                        </span>
                        <span class="field-validation-valid" data-valmsg-for="ApplicationRoleId" data-valmsg-replace="true"></span>
                    </div>
                </div>
            </div>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8KeASaIZMdBDjnZy_1CdaouczJ-zwxPaQp-N5OQ5bGWfYzVfpDz7_iC0VlJb_cRDkqucT-8ENFhsNPe9Rng1Mqrm9VQbYQoSQwerxj953ql4v7dABrW6pioEySOJN7qFXaalGYePyjHoB0QiKxfuvkvh938tJG4gVnh5D1JvLyNBBKlR4d25PcoJOJZTdN_Bxg" /></form>    </div>
</div>


<div aria-hidden="true" aria-labelledby="modal-action-role-label" role="dialog" tabindex="-1" id="modal-action-role" class="modal fade">
    <div class="modal-dialog ">
        <div class="modal-content">
        </div>
    </div>
</div>


        </div>
    </div>



    <div id="footer" class="container-fluid">
        <div class="navbar navbar-fixed-bottom navbar-inverse ">
            <ul>
                <li class="navbar-link">&copy; my company</li>
                <li class="navbar-link text-muted"><a id="disclaimerLink" href="#">Disclaimer</a></li>
            </ul>
        </div>
    </div>


    <script type="text/javascript" src="/lib/jquery/dist/jquery.js"></script>
    <script type="text/javascript" src="/lib/bootstrap/dist/js/bootstrap.min.js"></script>


    <script src="/lib/jquery-validation/dist/jquery.validate.min.js"></script>
    <script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>

    <script type="text/javascript" src="/js/site.js"></script>

</body>

</html>

我的公司
  • --欢迎:站长
  • 您在卡通绘画领域的可靠合作伙伴
    • 我的公司
    • 大街16号
    • 宾夕法尼亚州安尼镇
    • 610.111.1111
    为用户添加角色:BioEdit 角色 行动 生物编辑 PowerEditor 管理员 请选择 生物编辑 PowerEditor 管理员 事件编辑器 添加所选角色
    • ©;我的公司

    感谢您提供的任何指导,Kent,这正是找到问题的正确方向,谢谢Ahmar。由于2个id被传递回控制器,因此发生的情况是,数据被包装在查询字符串中,而不是作为实际路由{controller}{action}{id}

    模态不会将查询字符串传递给final,因此我更改了模型,并将值包装在模态表单中,以便最终删除,所有操作都成功了。感谢您提出正确的问题来回答此问题。