簡體   English   中英

從視圖中的asp.net中的控制器調用方法

[英]call method from controller in asp.net button from view

我是MVC技術的新手,我正在努力慢慢學習這項技術。 我有一個問題,我認為這很簡單,但找不到任何解決方案。 我對此代碼有看法:

<script runat="server">

    protected void btnSubmit_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">
    <h2><%: ViewData["Message"] %></h2>
    <form id="submitForm" runat="server">
    <p>Enter URL: <asp:TextBox ID="txtOne" runat="server" />&nbsp;<asp:Button 
            ID="btnSubmit" runat="server" onclick="btnSubmit_Click" Text="Submit" />
&nbsp;<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
            ControlToValidate="txtOne" Display="Dynamic" 
            ErrorMessage="Website URL not valid." 
            ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?"></asp:RegularExpressionValidator>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="txtOne" Display="Dynamic" ErrorMessage="Please enter URL."></asp:RequiredFieldValidator>
    </p>
    </form>
</asp:Content>

我有一個方法的控制器代碼:

 public ActionResult isValidURL(string url)
        {
            if (Regex.IsMatch(url, @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?"))
            {
            }
            return View();
        }

單擊按鈕並傳遞參數時,如何調用isValidURL? 在此先感謝Laziale

您應該使用簡單的html或特殊的HTML幫助器 ,但不能使用從<asp:開始的asp.net控件<asp:

首先,您需要刪除按鈕單擊處理程序。 然后,您需要使用url命名文本框為“ url”,它應等於isValidURL()方法參數的名稱。 之后,請確保您的按鈕正在將表單提交到以下URL {your controller name}/isValidURL 而且,當您單擊按鈕時,表單將被提交到服務器,並且您的isValidURL方法將被執行。

幕后發生了什么

非常粗略,但是對所發生的事情有基本的了解。 ASP.NET MVC對表單和url參數使用命名約定。 如果要通過GET或POST發送HTTP請求,則ASP.NET MVC使用已注冊的路由規則對其進行解析,並運行控制器和相應的操作,例如,使用GET將HTTP請求發布到"http:/localhost/controller1/Action1?x=8" 在這種情況下,ASP.NET MVC將嘗試運行Controller1,然后嘗試運行具有以下簽名“ Action(int x)”的名為Action1的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM