从控制器调用方法在asp.net按钮从视图

本文关键字:net 按钮 视图 asp 控制器 调用 方法 | 更新日期: 2023-09-27 18:08:17

我是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

从控制器调用方法在asp.net按钮从视图

您应该使用简单的html或特殊的html帮助程序,而不是从<asp:开始的asp.net控件

首先,您需要删除按钮单击处理程序。然后,您需要将url的文本框命名为"url",它应该等于isValidURL()方法参数的名称。之后,请确保您的按钮提交表单到以下url {your controller name}/isValidURL。当你点击按钮时,表单会被提交到服务器你的isValidURL方法会被执行。

幕后发生了什么

非常粗略,但对正在发生的事情有基本的了解。ASP。. NET MVC对表单和url参数使用命名约定。如果你通过GET或POST发送HTTP请求。. NET MVC使用路由规则对其进行解析,您已经注册,运行您的控制器和相应的操作,例如您使用GET发布http请求到"http:/localhost/controller1/Action1?x=8"。在本例中,ASP。. NET MVC将尝试运行Controller1,然后运行它的方法Action1,并带有以下签名"Action(int x)"。