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?
-
27-09-2019 - |
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>
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.