将文本框中的值传递给控制器
问题描述:
如何从文本框“EmailList”获取值并将其发送给控制器?我总是使用webforms,这是我第一次接触mvc。将文本框中的值传递给控制器
查看:
@Html.TextBox("EmailList")
@Html.Action("SendEmails")
控制器:
public ActionResult SendEmails()
{
// some operations on EmailList
}
编辑
如果我只需要打开简单的方法 '的onclick' 是什么?不是行动结果。例如 -
public void SendEmails()
{
// some operations on EmailList
}
答
因此,要获得值回你将需要发出POST
第一控制器所有你想要设置你的控制器动作为POST
:
[HttpPost]
public ActionResult SendEmails(string EmailList)
{
}
还注意我添加了一个参数EmailList
,它的名称与窗体上的控件完全相同。接下来,我们需要确保你的HTML是正确的设置,所以当你建立form
控制建立这样的:
@Html.BeginForm("SendEmails", "{ControllerNameHere}", FormMethod.Post)
,然后你的文本框,以及不要管它,它应该只是罚款。
答
有一个模型
public class EmailSubmitModel
{
public string EmailList {get; set;}
}
在你的控制器
public ActionResult SendEmails(EmailSubmitModel emailSubmitModel)
{
}
+0
谢谢,请看看编辑。 – whoah 2013-03-15 00:15:08
答
如果你想在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
}
希望它有帮助
谢谢,请看编辑。 – whoah 2013-03-15 00:14:40
请告诉我,如何防止这种形式从“f5”按钮或重新加载页面? – whoah 2013-03-15 08:54:10
@whoah,你想阻止用户重新加载页面?你在提交过程中说过吗?还是你说完全? – 2013-03-15 11:10:21