我是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" /> <asp:Button
ID="btnSubmit" runat="server" onclick="btnSubmit_Click" Text="Submit" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="txtOne" Display="Dynamic"
ErrorMessage="Website URL not valid."
ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"></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- ./?%&=]*)?"))
{
}
return View();
}
如何在单击按钮时调用isValidURL并传递参数? 在此先感谢Laziale
答案 0 :(得分:0)
您应该使用简单的html或特殊HTML helpers,但不能使用从<asp:
开始的asp.net控件
首先,您需要删除按钮单击处理程序。然后,您需要将带有url的文本框命名为“url”,它应该等于isValidURL()
方法参数的名称。之后,请确保您的按钮正在将表单提交到以下网址{your controller name}/isValidURL
。当您单击按钮时,表单将提交给服务器,您的isValidURL方法将被执行。
幕后发生的事情
非常粗略,但基本了解正在发生的事情。 ASP.NET MVC使用表单和url参数的命名约定。如果您通过GET或POST发送HTTP请求,则ASP.NET MVC使用您已注册的路由规则对其进行解析,运行您的控制器和相应的操作,例如:您使用GET向"http:/localhost/controller1/Action1?x=8"
发布了http请求。在这种情况下,ASP.NET MVC将尝试运行Controller1,然后使用以下签名“Action(int x)”运行其名为Action1的方法。