Какой самый простой (правильный) способ сделать 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 и каковы его преимущества и недостатки.

Другие вопросы по тегам