Comment passer de la valeur du bouton soumettre pour mvc dynamiquement?

J'ai commencé à travailler avec MVC depuis quelques jours et vous avez une question d'apprendre beaucoup de façons de communiquer entre les Contrôleurs et les Vues MVC

J'ai la page qui affiche la liste des employés sous forme de tableaux.

Modèle est de type IEnumerable de Employee Model

Il dispose de trois boutons, ils sont Edit, Create, Delete, Details.

Exigence:

J'ai utilisé les boutons de sorte que tous devraient être de la requête HTTP Post type, parce que je ne veux pas que les utilisateurs d'accéder directement entre eux à l'aide de demandes d'URL.

Voici mon code:

@using (Html.BeginForm())
{
    <p>
        <input type="submit" name="CreateView" value="Create New(Post)" formaction="CreateView" formmethod="post" />
    </p>
    <table class="table">
        <tr>
            -------Headings of table-------
        </tr>
        @foreach (var item in Model)
        {
        <tr>
            <td>@Html.DisplayFor(modelItem => item.EmployeeName)</td>
            <td>@Html.DisplayFor(modelItem => item.EmployeeGender)</td>
            <td>@Html.DisplayFor(modelItem => item.EmployeeCity)</td>
            <td>@Html.DisplayFor(modelItem => item.DepartmentId)</td>
            <td>@Html.DisplayFor(modelItem => item.EmployeeDateOfBirth)</td>
            <td>
                <input type="submit" name="EditView" value="Edit(Post)" formaction="Edit" formmethod="post" /> |
                <input type="submit" name="DetailsView" value="Details(Post)" formaction="Details" formmethod="post" /> |
                <input type="submit" value="Delete(Post)" onclick="return confirm('Are you sure you want to delete record with EmployeeId = @item.EmployeeId')" />
            </td>
        </tr>
        }
    </table>
}

Ici bouton supprimer fonctionne car je n'ai pas besoin de l'id de l'employé.
Mais pour d'autres actions comme l'édition, la suppression et les détails de l'affichage j'ai besoin de passer Employés Id de contrôleur. Mais comment puis-je passer l'Id du contrôleur en utilisant le bouton soumettre.

Dans les requêtes get types que j'ai utilisé pour passer comme ceci:

@Html.ActionLink("Details", "Details", new { id = item.EmployeeId })

Pour seul bouton submit j'ai utilisé pour transmettre des données de cette

@using (Html.BeginForm("Details", "BusinessLayer", FormMethod.Post, new { id = item.EmployeeId }))

Quelqu'un peut-il me dire la démarche que je peux en friche pour y parvenir?

  • Plusieurs soumet à l'intérieur seul formulaire peut être une mauvaise idée. vous pouvez utiliser le bouton au lieu de cela, avec l'aide de javascript, vous pouvez la soumettre.
  • L'OP veut rediriger si l'ajax ne fonctionnent pas.
  • Il suffit de créer un formulaire pour chaque action et chaque élément de la collection - @Html.BeginForm("Edit", "yourControllerName, new { id = item.EmployeeId })) { <input type="submit" value="Edit" /> } etc
  • ouais, mais on ne peut avoir qu'une action de contrôleur de post juste? et si les performances sont tous là dans une action, nous devons passer en mode edit (Éditer/supprimer/détails emp id comme paramètre facultatif.Corrigez-moi si mon approche est erronée
  • L'id est passé en paramètre de route (new { id = item.EmployeeId }) Et pourquoi voudriez-vous une seule méthode POST au lieu d'un pour chaque action? (bien que vous pouvez le faire en donnant à chaque bouton soumettre le même nom (par exemple name="action") et l'ajout d'un paramètre string action dans votre méthode POST)`
  • Je pensais à l'aide du formulaire unique uniquement merci pour la mise à jour.

InformationsquelleAutor Nithin B | 2016-09-23