Quelle est la meilleure façon (correcte) dans ASP.NET MVC 2 pour faire un bouton clic texte d'affichage?

StackOverflow https://stackoverflow.com/questions/3458170

Question

Je dois faire une démonstration rapide montrant comment faire interactivité sur une page ASP.NET MVC .

J'ai ouvert un projet ASP.NET MVC dans Visual Studio 2010, mettre la vue en mode conception, traîné dans un bouton, un double-clic dessus et regardé la vue à nouveau. Je me attendais à voir le code JQuery ingénieux généré, mais plutôt un <asp:Button> et un bloc de <script runat="server"> a été créé, ce qui semble être un mélange des classiques métaphores ASP.NET MVC et ASP.NET . Je ne pense pas que ce soit la méthode recommandée pour construire l'interactivité dans MVC, droit?

Quel est donc le plus facile, approche la plus standard MVC pour moi (1) créer un bouton, (2) lorsque le bouton est cliqué, modifier un texte à mon avis?

  • est-ce vraiment la meilleure pratique dans MVC d'utiliser le bloc runat-serveur?
  • sont là des magiciens faciles qui génèrent l'interactivité JQuery pour que je puisse le faire de manière MVC les meilleures pratiques?
  • ou dois-je mettre en œuvre le JQuery moi-même comme je le ferais sur une page HTML simple sans ASP.NET MVC?

Voir:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<script runat="server">

    protected void Button1_Click(object sender, EventArgs e)
    {

    }
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <form id="form1" runat="server">
    <h2><%: ViewData["Message"] %></h2>
    <p>

        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

    </p>
    </form>
</asp:Content>
Était-ce utile?

La solution

Vous ne devriez pas utiliser asp.net contrôles ajax dans asp.net MVC. Si vous voulez créer un bouton suffit d'écrire une html ancienne comme:

<input type="button">Button</input>

alors si vous avez besoin sur ce bouton pour faire une action, il suffit d'écrire une nouvelle action au lieu de code derrière méthode semblable et appelez comme:

<input type="button" onclick="javascript:window.location = 'http://mypage.com/mycontroller/buttonaction' />

ou mieux encore créer un lien au lieu de bouton à l'aide mvc rebâti en aides html:

<%= Html.ActionLink("Do something" ,"ButtonAction") %>

Plus vite vous attraper mieux pour vous. Vous devez démissionner de l'habitude de ajax asp.net. Il n'y a pas derrière postback ou un code et il est éliminé avec une raison. MVC est contrôlé par des actions exécutées qui signifie que vous gouvernez l'application en appelant les liens indiqués. En utilisant HTML pur que vous avez beaucoup plus de contrôle sur votre code de sortie et le flux d'actions dans votre application.

Rappelez-vous que MVC est pas une nouvelle ASP.NET AJAX et ces deux volonté va de pair, donc si ce style de l'écriture ne nous APPS pas vous convient, alors vous n'avez pas besoin de l'utiliser. Il est juste le metter de choix que la technologie est mieux pour vous et vos projets.

Aussi pour en savoir plus sur la visite asp.net page mvc. Je vous recommande spécialement pour voir des vidéos comme

scroll top