2013-03-14 188 views
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

因此,要获得值回你将需要发出POST第一控制器所有你想要设置你的控制器动作为POST

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

还注意我添加了一个参数EmailList,它的名称与窗体上的控件完全相同。接下来,我们需要确保你的HTML是正确的设置,所以当你建立form控制建立这样的:

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

,然后你的文本框,以及不要管它,它应该只是罚款。

+0

谢谢,请看编辑。 – whoah 2013-03-15 00:14:40

+0

请告诉我,如何防止这种形式从“f5”按钮或重新加载页面? – whoah 2013-03-15 08:54:10

+0

@whoah,你想阻止用户重新加载页面?你在提交过程中说过吗?还是你说完全? – 2013-03-15 11:10:21

1

有一个模型

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

在你的控制器

public ActionResult SendEmails(EmailSubmitModel emailSubmitModel) 
{ 


} 
+0

谢谢,请看看编辑。 – whoah 2013-03-15 00:15:08

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 
     } 

希望它有帮助

相关问题