微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为导航属性创建 MVC 视图一对多、多对多

如何解决如何为导航属性创建 MVC 视图一对多、多对多

我有两个 ASP.NET MVC EF 实体共享一个关联:

enter image description here

在编辑或创建 User 时,我希望能够附加一个或多个 UserRole。因此,我的 User Create 视图如下所示:

@model MyModels.Userviewmodel
@{ ViewBag.Title = "Create"; }
@using (Html.BeginForm())
{
    <fieldset>
        <legend>User</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Username)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Username)
            @Html.ValidationMessageFor(model => model.Username)
        </div>

        <!-- how to create an editor to add/remove roles -->
        <div class="editor-label">
            @Html.LabelFor(model => model.UserRoles)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.UserRoles)
            @Html.ValidationMessageFor(model => model.UserRoles)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

由于 Model.UserRoles 最初是空的,所以我在此行 @Html.EditorFor(model => model.UserRoles) 中什么也没有。我尝试添加一个下拉菜单,我可以在其中使用 JavaScript 选择现有角色(我猜是作为部分视图检索的?),但我不知道如何将所选角色附加到 fieldset 以便它被提交。

这在 ASP.NET 中通常是如何完成的?我已经搜索了一段时间,但找不到合适的解决方案。

澄清一下,我不明白的是如何向客户端添加/附加新角色,以便提交按钮实际将其发送到 UserRoles 列表中。

(编辑)好的,我找到了: How to add an item to a list in a ViewModel using Razor and .NET Core。它说我应该获取一个局部视图,它被编写成看起来像由 @Html.EditorFor 生成的输入(带有下一个数组索引),然后使用 JavaScript 附加它。

这看起来很奇怪,这真的是正确的方法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。