从没有提交按钮的简单文本框传递值到Controller

时间:2016-03-09 23:24:28

标签: c# asp.net-mvc razor

在现有代码中,我已经在我的视图中看到了这个:

<p class="label">@Html.ActionLink("Update Your Email", "UpdateEmail", "Settings")<br/>

我在那里添加了一个简单的文本框,以便他们输入密码。请注意,我不要想要提交按钮或其他任何内容,只需要一个文本框来输入密码。

<input type="password" name="userpassword"/>

controllerActionLink中的操作,我目前来自旧代码,我有这个:

public ActionResult UpdateEmail()
{
    // I just want to have the password they typed in here to use it. 
    // some pre-existing stuff
}

我该怎么做?当我来UpdateEmail()时,我想知道他们在textbox中输入了什么内容?对不起,我是菜鸟和愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

您无法确定他们在框中输入的内容,直到将信息发布到某种操作。您已经定义了一个Action方法:

public ActionResult UpdateEmail() {}

您需要定义另一种方法:

[HttpPost]
public ActionResult UpdateEmail([FromBody] ViewModelType viewModel) {}

其中ViewModelType被定义为具有公共userpassword字段的公共属性。您还应该考虑在现有的[HttpGet]方法中添加UpdateEmail()注释。