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

3 回答 3

4

因此,要将值返回到控制器中,您首先需要发出POST,因此您需要为 a 设置控制器操作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 回答