7

テキストボックス「EmailList」から値を取得してコントローラーに送信するにはどうすればよいですか? 私は常に Web フォームを使用しており、これが mvc との最初の接触です。

意見:

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

コントローラ:

    public ActionResult SendEmails()
    {

        // some operations on EmailList
    }

EDIT


そして、単純なメソッド「onclick」を開くだけでよい場合はどうなりますか? 行動結果ではありません。例えば ​​-

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

3 に答える 3

4

したがって、コントローラーに値を戻すには、POSTまず最初にを発行する必要があるため、コントローラーのアクションを次のようにセットアップする必要がありPOSTます。

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

EmailListまた、フォーム上のコントロールとまったく同じ名前のパラメーターを追加したことにも注意してください。次に、HTML が正しく設定されていることを確認する必要があるため、formコントロールをビルドするときは次のようにビルドします。

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

そして、テキストボックスはそのままにしておいてください。問題なく動作するはずです。

于 2013-03-14T23:53:44.370 に答える
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 
        }

それが役に立てば幸い

于 2013-03-15T05:08:29.577 に答える
1

モデルを持つ

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

コントローラーで

public ActionResult SendEmails(EmailSubmitModel emailSubmitModel)
{


}
于 2013-03-14T23:50:18.123 に答える