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