вызов метода из контроллера в кнопке asp.net из представления - PullRequest
0 голосов
/ 09 сентября 2011

Я новичок в технологии 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

1 Ответ

0 голосов
/ 09 сентября 2011

Вы должны использовать простые html или специальные HTML-помощники , но не элементы управления asp.net, начиная с <asp:

Во-первых, вам нужно удалить обработчик нажатия кнопки.Затем вам нужно назвать ваше текстовое поле с url как «url», оно должно совпадать с именем параметра метода isValidURL().После этого убедитесь, что ваша кнопка отправляет форму на следующий URL {your controller name}/isValidURL.И что, когда вы нажмете свою кнопку, форма будет отправлена ​​на сервер, и ваш метод isValidURL будет выполнен.

Что происходит за кулисами

Очень грубо, но дает базовое понимание того, что происходит.ASP.NET MVC использует соглашение об именах для параметров формы и URL.Если вы отправляете HTTP-запрос через GET или POST, ASP.NET MVC анализирует его, используя правила маршрутизации , которые вы зарегистрировали, запускает контроллер и выполняет соответствующее действие, например, вы отправили http-запрос с помощью GET на "http:/localhost/controller1/Action1?x=8".В этом случае ASP.NET MVC попытается запустить Controller1, а затем его метод с именем Action1 со следующей подписью «Action (int x)».

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