Qual é a maneira mais fácil (correta) no ASP.NET MVC 2 para fazer um texto de exibição de clique com o botão?

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

Pergunta

Eu preciso fazer uma demonstração rápida mostrando como fazer Interatividade em uma página do ASP.NET MVC.

Abri um projeto ASP.NET MVC no Visual Studio 2010, coloquei a exibição no modo de design, arrastei em um botão, clique duas vezes nele e olhei para a vista novamente. Eu esperava ver algum código jQuery engenhoso gerado, mas um <asp:Button> e a <script runat="server"> Block foi criado, o que parece ser um Mixagem de metáforas clássicas do ASP.NET e ASP.NET MVC. Eu não acho que essa seja a maneira recomendada de criar interatividade no MVC, certo?

Então, qual é a abordagem mais fácil e mais padrão-MVC para (1) criar um botão, (2) Quando o botão é clicado, altere algum texto na minha visualização?

  • É realmente uma prática recomendada no MVC usar o bloco Runat-Server?
  • Existem alguns assistentes fáceis que geram interatividade jQuery para que eu possa fazer isso de uma maneira MVC de melhor prática?
  • Ou preciso implementar o jQuery como faria em uma página HTML simples sem asp.net MVC?

Visão:

<%@ 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>
Foi útil?

Solução

Você não deve usar os controles do ASP.NET AJAX no ASP.NET MVC. Se você deseja criar um botão, escreva um HTML antiquado como:

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

Então, se você precisar deste botão para fazer alguma ação, basta escrever uma nova ação em vez de código por trás do método como e chamá -lo como:

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

Ou melhor ainda, crie um link em vez de botão usando os ajudantes HTML construídos pelo MVC:

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

Mais rápido você pega melhor para você. Você precisa renunciar ao hábito do ASP.NET AJAX. Não há postback ou código para trás e ele é removido com um motivo. O MVC é controlado por ações executadas, o que significa que você está direcionando o aplicativo chamando links especificados. Ao usar o HTML puro, você tem muito mais controle no seu código de saída e fluxo de ações em seu aplicativo.

Lembre -se de que o MVC não é um novo ASP.NET AJAX e esses dois serão juntos; portanto, se esse estilo de escrita, nós aplicativos não for adequado, você não precisará usá -lo. É apenas o Metter de escolha qual tecnologia é melhor para você e seus projetos.

Também para saber mais sobre a visita do MVC Página da Web do ASP.NET MVC. Eu especialmente recomendo você para ver alguns vídeos como Este. Definitivamente, ajudará você a entender melhor o que é o MVC e quais são suas vantagens e desvantagens.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top