Open partial view by passing parameter

0

I'm doing some testing on ASP.NET CORE 2.0 and I have the following question. I have an Index (View) that is displaying a list of 'Users'.

And from the click of an 'Edit' button, I render my Partial View within a modal, where this Partial is strongly typed. Problem is when I open my modal and ends up displaying error that the types are different, ie the partial view receives UserModel but my index is typed with IEnumerable.

From this I do not know how to pass the parameter to my partial. Here is the code for the two items:

Index

@model IEnumerable<MyProjecy.UI.Models.UsuarioModel>

<div class="panel panel-default">
    <div class="panel-heading text-center"><h3>Lista de Usuários</h3></div>
    <table class="table">
        <thead>
            <tr>
                <th style="width: 100px;"></th>
                <th style="width: 80px;">Id</th>
                <th>@Html.DisplayNameFor(model => model.Usuario_Login)</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model)
            {
                <tr>
                    <td>
                        <a class="btn btn-default btn-sm" data-toggle="modal" data-target="#exampleModal" data-usuarioId="@item.Usuario_Id" data-usuarioLogin="@item.Usuario_Login">
                            <span class="glyphicon glyphicon-edit" aria-hidden="true"></span>
                        </a>
                        <button type="button" class="btn btn-danger btn-sm">
                            <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
                        </button>
                    </td>
                    <th>@item.Usuario_Id</th>
                    <td>@item.Usuario_Login</td>
                </tr>
            }
        </tbody>
    </table>
</div>

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
  @await Html.PartialAsync("_EditUserPartial")
</div><!-- /.modal -->


@section scripts {
@* NADA AQUI *@
}

Partial

@model MyProject.Models.UsuarioModel

<h4>UsuarioModel</h4>
<hr />

<div class="modal-dialog" role="document">
    <div class="modal-content">
        <form asp-action="UsuarioUpdate" method="post">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="gridSystemModalLabel">Modal title</h4>
            </div>
            <div class="modal-body">

                <div class="row">
                    <div class="col-md-4">
                        @Html.HiddenFor(m => m.Usuario_Id)
                        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                        <div class="form-group">
                            <label asp-for="Usuario_Login" class="control-label"></label>
                            <input asp-for="Usuario_Login" class="form-control" />
                            <span asp-validation-for="Usuario_Login" class="text-danger"></span>
                        </div>
                        <div class="form-group">
                            <label asp-for="Usuario_Senha" class="control-label"></label>
                            <input type="password" asp-for="Usuario_Senha" class="form-control" />
                            <span asp-validation-for="Usuario_Senha" class="text-danger"></span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="modal-footer">
                <a asp-controller="Usuario" asp-action="Index" id="btnCancelar" class="btn btn-danger">Cancelar</a>
                <input type="submit" value="Salvar" class="btn btn-success" />
            </div>
        </form>
    </div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->

<div>
    <a asp-action="Index">Back to List</a>
</div>

@section Scripts {
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
    
asked by anonymous 05.08.2018 / 21:12

0 answers