Exemple appel AJAX à un ASP.NET Base de Rasoir Page

J'ai trouvé des exemples de plusieurs gestionnaires sur une page et de la convention d'affectation de noms (c'est à dire OnPostXXX) et "asp-post-hanlder' étiquette de l'expert. Mais comment puis-je appeler l'une de ces méthodes à partir d'un appel AJAX.

J'ai un vieil exemple typique d'MVC vue et le contrôleur, mais comment est-ce de travailler avec une lame de Rasoir Page?

Par exemple si je prends l'application de base et de modifier le Sujet.cshtml page à la suivante:

@page
@model AboutModel
@{
    ViewData["Title"] = "About";
}
<h2>@ViewData["Title"]</h2>
<h3>@Model.Message</h3>

    <input type="button" value="Ajax test" class="btn btn-default" onclick="ajaxTest();"  />

@section Scripts {
<script type="text/javascript">
    function ajaxTest() {
        console.log("Entered method");
        $.ajax({
            type: "POST",
            url: '/About', //<-- Where should this point?
            contentType: "application/json; charset=utf-8",
            dataType: "json",
        error: function (xhr, status, errorThrown) {
            var err = "Status: " + status + " " + errorThrown;
            console.log(err);
        }
        }).done(function (data) {
            console.log(data.result);
        })
    }
</script>
}

Et sur la page de votre modèle Sur.cshtml.cs

public class AboutModel : PageModel
{
    public string Message { get; set; }

    public void OnGet()
    {
        Message = "Your application description page.";
    }

    public IActionResult OnPost() {
        //throw new Exception("stop");
        return new JsonResult("");
    }
}

La OnPost n'est pas appelée à partir de l'appel Ajax.

  • Que voulez-vous faire? Pouvez-vous montrer votre point de vue?
  • Il n'y a pas une 'Vue' juste un Rasoir Page. J'ai élargi l'exemple.
  • docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/... @page rend le fichier dans un MVC action - ce qui signifie qu'il gère les demandes directement, sans passer par un contrôleur. ... Les associations des chemins d'URL pour les pages sont déterminées par la place de la page dans le système de fichiers. Le tableau suivant montre un Rasoir chemin d'accès de Page et l'URL correspondante: nom de Fichier et chemin d'accès correspondant à l'URL /Pages/Index.cshtml / ou /Index /Pages/Contact.cshtml /Contact /Pages/Store/Contact.cshtml /Store/Contact /Pages/Boutique/Index.cshtml /Magasin ou /Store/Index
InformationsquelleAutor Brad Patton | 2017-09-25