按钮OnClick =“btnSave_Click”在MVC应用程序中不起作用

时间:2011-02-21 08:32:39

标签: asp.net-mvc-2

我是MVC架构的新手,我正在努力获得Button onclick。请帮我跟踪一下这个问题。我有一个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 个答案:

答案 0 :(得分:7)

ASP.NET MVC应用程序中的

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

在ASP.NET MVC应用程序中,您不使用服务器端控件(无runat="server")。你没有PostBack。没有ViewState。没有代码。没有事件。没有脚本管理器。没有对象数据源。所有这些都是WebForms特有的,不再用于MVC。

在ASP.NET MVC应用程序中,您有一个Controller,一个Model和一个View。该视图包含标准HTML标记,可以借助HTML帮助程序生成标记。要调用控制器,您可以使用普通链接:

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

控制器包含操作模型的操作,并通过传递它需要显示的所有信息来选择要渲染的视图。

我强烈建议你开始阅读这里的教程:http://asp.net/mvc关于MVC的工作原理,并熟悉这个框架的基础知识。