Какой самый простой (правильный) способ сделать ASP.NET MVC 2 для отображения текста при нажатии кнопки?
Мне нужно сделать небольшую демонстрацию, показывающую, как сделать интерактивность на странице ASP.NET MVC.
Я открыл проект ASP.NET MVC в Visual Studio 2010, перевел представление в режим разработки, перетащил в кнопку, дважды щелкнул по нему и снова посмотрел на представление. Я ожидал увидеть оригинальный гениальный код JQuery, но вместо этого <asp:Button>
и <script runat="server">
Был создан блок, представляющий собой смесь классических метафор ASP.NET и ASP.NET MVC. Я не думаю, что это рекомендуемый способ создания интерактивности в MVC, верно?
Так какой же самый простой и самый стандартный подход MVC для меня: (1) создать кнопку, (2) при нажатии кнопки изменить текст в моем представлении?
- действительно ли лучше в MVC использовать блок runat-server?
- Существуют ли простые мастера, которые генерируют интерактивность JQuery, чтобы я мог сделать это наилучшим способом MVC?
- или мне нужно реализовать JQuery самостоятельно, как на простой HTML-странице без ASP.NET MVC?
Посмотреть:
<%@ 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>
1 ответ
Вы не должны использовать элементы управления asp.net ajax в asp.net MVC. Если вы хотите создать кнопку, просто напишите какой-нибудь старомодный HTML, например:
<input type="button">Button</input>
затем, если вам нужна эта кнопка для выполнения какого-либо действия, просто напишите новое действие вместо кода позади метода like и вызовите его следующим образом:
<input type="button" onclick="javascript:window.location = 'http://mypage.com/mycontroller/buttonaction' />
или даже лучше создать ссылку вместо кнопки, используя встроенные в hvml помощники mvc:
<%= Html.ActionLink("Do something" ,"ButtonAction") %>
Чем быстрее ты поймаешь это, тем лучше для тебя. Вы должны отказаться от привычки asp.net ajax. Там нет постбэка или кода, и он был удален по причине. MVC контролируется выполненными действиями, что означает, что вы управляете приложением, вызывая указанные ссылки. Используя чистый HTML, вы получаете гораздо больше контроля над выходным кодом и потоком действий в вашем приложении.
Помните, что MVC - это не новый ASP.NET AJAX, и эти два будут идти вместе, поэтому, если этот стиль написания наших приложений вам не подходит, вам не нужно его использовать. Выбор метрики - какая технология лучше для вас и ваших проектов.
Также, чтобы узнать больше о mvc, посетите веб-страницу asp.net mvc. Я особенно рекомендую вам посмотреть несколько таких видео. Это определенно поможет вам лучше понять, что такое mvc и каковы его преимущества и недостатки.