2011-09-08 80 views
0

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

+0

您不能在Asp.Net MVC中使用Asp.Net控件(如Button或RequiredFieldValidator) – Martin

回答

0

您應該使用簡單的HTML或特殊HTML helpers,而不是asp.net控件從<asp:

開始首先,你需要刪除按鈕單擊處理程序。然後你需要將你的文本框命名爲「url」,它應該等於isValidURL()方法參數的名稱。之後,確保您的按鈕正在提交表單到以下網址{your controller name}/isValidURL。而當你點擊你的按鈕時,表單將被提交給服務器,你的isValidURL方法將被執行。

這是怎麼回事幕後

背後很粗略,但給人是怎麼回事的基本認識。 ASP.NET MVC對form和url參數使用命名約定。如果您通過GET或POST發送HTTP請求,則ASP.NET MVC使用您註冊的路由規則解析它,運行您的控制器並執行相應的操作,例如,您使用GET發送了http請求至"http:/localhost/controller1/Action1?x=8"。在這種情況下,ASP.NET MVC將嘗試運行Controller1,然後使用以下簽名「Action(int x)」運行名爲Action1的方法。