2013-03-14 16 views
7

テキストボックス "EmailList"から値を取得し、それをコントロールに送るにはどうすればよいですか?私は常にwebformsを使用しています。これはmvcとの最初の連絡です。テキストボックスからコントローラに値を渡す

ビュー:

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

コントローラー:

public ActionResult SendEmails() 
    { 

     // some operations on EmailList 
    } 

EDIT


そして、何私はちょうど簡単な方法 'のonclick' を開くために必要がある場合は?アクション結果ではありません。例えば ​​-

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

答えて

4

をモデル

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

を持っていますあなたのコントローラーアクションをPOSTに設定したい場合は、

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

また、フォーム上のコントロールと全く同じ名前のパラメータEmailListを追加しました。次に私たちは、あなたのHTMLは、セットアップの権利であることを確認する必要がありますが、このようにそれを構築formコントロールを構築するとき、そう:

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

してから、テキストボックス、よく一人でそれを残して、それだけで正常に動作する必要があります。

+0

ありがとう、どうぞ、編集を見てください。 – whoah

+0

そして「f5」ボタンやリロードページからこのフォームを防ぐ方法を教えてください。 – whoah

+0

@whoah、ユーザーがページを再読み込みできないようにしたいですか?あなたは提出中に言っていますか?それとも完全に言っているのですか? –

1

だから戻ってあなたが最初POSTを発行する必要があるとしているコントローラに値を得るためにあなたのコントローラで

public ActionResult SendEmails(EmailSubmitModel emailSubmitModel) 
{ 


} 
+0

ありがとう、どうぞ、編集を見てください。 – whoah

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 
     } 

それは助けることを望む

関連する問題