Кнопка OnClick = "btnSave_Click" не работает в приложении MVC - PullRequest
1 голос
/ 21 февраля 2011

Я новичок в архитектуре MVC, и я изо всех сил пытаюсь получить кнопку на кнопку. Пожалуйста, помогите мне отследить проблему. У меня есть элемент управления Telerik TreeView, который заполнен. Некоторые из узлов имеют дочерние узлы, а некоторые нет.

Пожалуйста, дайте мне знать, какие изменения необходимо внести, чтобы решить проблему Здесь я изо всех сил пытаюсь заставить это работать.

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

<%@ Import Namespace="ApplicationGrps" %>

<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>


<script runat="server" type="text/javascript">

    protected void Page_Load()
    {

        ApplicationGrps.Visible = true;
        ApplicationGrps.DataSource = ODS1;

        ApplicationGrps.DataFieldID = "ApplicationName";
        ApplicationGrps.DataFieldParentID = "ParentID";

        ApplicationGrps.DataBind();
        BindCheckedTags(ApplicationGrps);
    }

    protected void BindCheckedTags(RadTreeView treeView)
        {
          // Displays the checked nodes
        }


        protected void ODS2_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            e.InputParameters["ClientID"] = ViewData["ClientID"];
        }

    protected void btnSave_Click(object sender, EventArgs e)
        {
               //Iterate through the tree and get all the nodes that are checked and submit it.
        }
</script>


<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" runat="server">
    <link href="<%: Url.Content("~/Content/script-libraries/jquery-ui-1.7.2.custom/css/smoothness/jquery-ui-1.7.2.custom.css") %>"
        rel="stylesheet" type="text/css" />
    <script src="<%: Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>

</asp:Content>


<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

    <form id="form1" runat="server" method="post">

     <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div>

       <telerik:RadTreeView id="AppModulesTreeView" runat="server" CheckBoxes="True" Visible="true" >


</telerik:RadTreeView>

<asp:ObjectDataSource ID="ODS1" runat="server" 
    SelectMethod="GetAllApplicationModules"
    TypeName="ELS.BOS.Services.EntitlementProxy.EntitlementServiceClient">
</asp:ObjectDataSource>

<asp:ObjectDataSource ID="ODS2" runat="server" 
    SelectMethod="GetApplicationModMappedByClientID" 
    TypeName="ELS.BOS.Services.EntitlementProxy.EntitlementServiceClient" 
          onselecting="ODS2_Selecting">
    <SelectParameters>
        <asp:Parameter Name="ClientID" Type="String" />
    </SelectParameters>
</asp:ObjectDataSource>
      <%--  <telerik:RadButton runat="server" onclick="btnSave_Click" 
            Text="Save">
        </telerik:RadButton>
        <telerik:RadButton ID="btnCancel" runat="server" Text="Cancel" 
            >
        </telerik:RadButton>--%>


        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="btnSave_Click" />

    </div>
    </form>


</asp:Content>

Пожалуйста, дайте мне знать, если мне нужно использовать javascript или jquery, чтобы это работало. Пожалуйста, покажите мне несколько примеров того, как запустить btnSave_click при нажатии кнопки управления.

Спасибо!

1 Ответ

7 голосов
/ 21 февраля 2011

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="btnSave_Click" />, asp:ObjectDataSource, ScriptManager, ... в приложении ASP.NET MVC?

номер

В приложениях ASP.NET MVC вы не используете серверные элементы управления (нет runat="server"). Вы не PostBack. Нет ViewState. Там нет кода позади. Нет событий. Там нет менеджеров сценариев. Нет источников данных объекта. Все это относится к веб-формам и больше не используется в MVC.

В приложении ASP.NET MVC у вас есть Контроллер, Модель и Представление. Представление содержит стандартную разметку HTML, которая может быть сгенерирована с помощью помощников HTML. Для вызова контроллера вы можете использовать обычную ссылку:

<%= Html.ActionLink("link text", "actionName", "controllerName") %>

Контроллер содержит действия, которые манипулируют моделью и выбирают представление, которое будет отображаться, передавая ему всю информацию, которую он должен показать.

Я настоятельно рекомендую вам начать читать здесь руководства: http://asp.net/mvc о том, как работает MVC, и ознакомиться с основами этой среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...