将值从文本框传递给控制器

时间:2013-03-14 23:47:26

标签: asp.net-mvc

如何从文本框“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
        }

3 个答案:

答案 0 :(得分:4)

因此,要将值重新输入控制器,首先需要发出POST,这样您就可以为POST设置控制器操作:

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

还注意到我添加了一个参数EmailList,其名称与表单上的控件完全相同。接下来我们需要确保您的HTML设置正确,因此当您构建form控件时,构建如下:

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

然后你的文本框,不管它,它应该工作得很好。

答案 1 :(得分: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 
        }

希望有所帮助

答案 2 :(得分:1)

有模特

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

在您的控制器中

public ActionResult SendEmails(EmailSubmitModel emailSubmitModel)
{


}