57 votes

Dans ASP.NET MVC : toutes les façons possibles d'appeler la méthode d'action du contrôleur à partir d'une vue Razor.

Je sais que c'est une question assez basique par ici.

Mais pouvez-vous me dire toutes les options possibles disponible pour,
appeler un Contrôle de la méthode d'action [généralement toute routine côté serveur] à partir d'une vue Razor. et,
en quoi chaque scénario s'applique le mieux à utiliser.

Merci.

96voto

Sampath Points 4405

Méthode 1 : Utilisation de l'appel Ajax Get de jQuery ( mise à jour partielle de la page ).

Convient lorsque vous avez besoin de récupérer des données jSon depuis une base de données.

Méthode d'action du contrôleur

[HttpGet]
public ActionResult Foo(string id)
{
    var person = Something.GetPersonByID(id);
    return Json(person, JsonRequestBehavior.AllowGet);
}

Jquery GET

function getPerson(id) {
    $.ajax({
        url: '@Url.Action("Foo", "SomeController")',
        type: 'GET',
        dataType: 'json',
        // we set cache: false because GET requests are often cached by browsers
        // IE is particularly aggressive in that respect
        cache: false,
        data: { id: id },
        success: function(person) {
            $('#FirstName').val(person.FirstName);
            $('#LastName').val(person.LastName);
        }
    });
}

Classe de personnes

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Méthode 2 : Utilisation de jQuery Ajax Post call ( mise à jour partielle de la page ).

Convient lorsque vous avez besoin de faire une page partielle de données d'affichage dans la base de données.

La méthode de post est également la même que ci-dessus, il suffit de remplacer [HttpPost] sur la méthode et le type d'action comme post pour la méthode jquery.

Pour plus d'informations, consultez Poster des données JSON dans les contrôleurs MVC ici

Méthode 3 : Comme un scénario de poste de formulaire ( mise à jour en pleine page ).

Convient lorsque vous devez sauvegarder ou mettre à jour des données dans une base de données.

Voir

@using (Html.BeginForm("SaveData","ControllerName", FormMethod.Post))
{        
    @Html.TextBoxFor(model => m.Text)

    <input type="submit" value="Save" />
}

Méthode d'action

[HttpPost]
public ActionResult SaveData(FormCollection form)
    {
        // Get movie to update
        return View();
   }

Méthode 4 : Dans le cadre du scénario Form Get ( mise à jour en pleine page ).

Convient lorsque vous avez besoin d'obtenir des données à partir d'une base de données.

La méthode Get est également la même que ci-dessus, il suffit de remplacer [HttpGet] sur la méthode Action et FormMethod.Get pour la méthode de formulaire de View.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X