web-dev-qa-db-fra.com

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

Je sais que c'est une question assez fondamentale ici.

Mais pourriez-vous me dire toutes les options possibles disponible pour,
appelle une méthode d'action de contrôle [généralement toute routine côté serveur] à partir d'une vue rasoir et,
dans quels scénarios chacun est le mieux applicable à utiliser dans.

Merci.

56
dan

Méthode 1: Utilisation de jQuery Ajax Obtenir un appel ( mise à jour partielle de la page ).

Convient lorsque vous devez extraire des données jSon de la 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 personne

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

Méthode 2: Utilisation de jQuery Ajax Poster un appel ( mise à jour partielle de la page ).

Convient lorsque vous devez faire des données de publication de page partielle dans la base de données.

La méthode post est également identique à celle ci-dessus, il suffit de remplacer [HttpPost] on Méthode d’action et tapez post pour la méthode jQuery.

Pour plus d'informations, consultez Enregistrement de données JSON sur des contrôleurs MVC ici

Méthode 3: En tant que scénario de publication de formulaire ( mise à jour complète de la page ).

Convient lorsque vous devez enregistrer 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: En tant que formulaire Obtenez un scénario ( mise à jour complète de la page ).

Convient lorsque vous devez extraire des données de la base de données

La méthode Get est identique à celle ci-dessus, il suffit de remplacer [HttpGet] sur la méthode d’action et FormMethod.Get pour la méthode de formulaire de View.

J'espère que cela vous aidera.

95
Sampath