2013-03-14 186 views
7

如何從文本框「EmailList」獲取值並將其發送給控制器?我總是使用webforms,這是我第一次接觸mvc。將文本框中的值傳遞給控制器​​

查看:

@Html.TextBox("EmailList") 
    @Html.Action("SendEmails") 

控制器:

public ActionResult SendEmails() 
    { 

     // some operations on EmailList 
    } 

編輯


如果我只需要打開簡單的方法 '的onclick' 是什麼?不是行動結果。例如 -

 public void SendEmails() 
     { 
      // some operations on EmailList 
     } 

回答

4

因此,要獲得值回你將需要發出POST第一控制器所有你想要設置你的控制器動作爲POST

[HttpPost] 
public ActionResult SendEmails(string EmailList) 
{ 
} 

還注意我添加了一個參數EmailList,它的名稱與窗體上的控件完全相同。接下來,我們需要確保你的HTML是正確的設置,所以當你建立form控制建立這樣的:

@Html.BeginForm("SendEmails", "{ControllerNameHere}", FormMethod.Post) 

,然後你的文本框,以及不要管它,它應該只是罰款。

+0

謝謝,請看編輯。 – whoah 2013-03-15 00:14:40

+0

請告訴我,如何防止這種形式從「f5」按鈕或重新加載頁面? – whoah 2013-03-15 08:54:10

+0

@whoah,你想阻止用戶重新加載頁面?你在提交過程中說過嗎?還是你說完全? – 2013-03-15 11:10:21

1

有一個模型

public class EmailSubmitModel 
{ 
    public string EmailList {get; set;} 
} 

在你的控制器

public ActionResult SendEmails(EmailSubmitModel emailSubmitModel) 
{ 


} 
+0

謝謝,請看看編輯。 – whoah 2013-03-15 00:15:08

3

如果你想在EmailList傳遞給方法,那麼你應該有一個電子郵件文本框

@using (Html.BeginForm("","")) 
{ 
    @Html.TextBox("EmailList") 
    <input type="submit" id="emailSubmit" value="Submit Email" /> 
} 

周圍的形式然後編寫一個腳本來覆蓋形式默認行爲現在

<script type="text/javascript"> 
$(function() { 
     $("form").submit(function (e) { 

      e.preventDefault(); 
      var emailValue = $("#EmailList").val(); 
      $.ajax({ 
       url: '/Home/SendEmails', 
       data: { text: emailValue } 
      }); 
     }); 
    }); 
</script> 

你可以像這樣爲你的方法添加一個參數:

public void SendEmails(string text) 
     { 
      string email=text; 
      //or you can look into the Request.Form or Request.Querystring 
     } 

希望它有幫助

相關問題