ASP.NET MVC获取文本框input值

我有一个文本框input和一些单选button。 例如我的文本框inputHTML看起来像这样:

<input type="text" name="IP" id="IP" /> 

一旦用户点击网页上的一个button,我想将数据传递给我的控制器:

 <input type="button" name="Add" value="@Resource.ButtonTitleAdd" onclick="location.href='@Url.Action("Add", "Configure", new { ipValue =@[ValueOfTextBox], TypeId = 1 })'"/> 

也许这是微不足道的,但我的问题是,我不知道如何获得文本框的价值,并传递给控制器​​。 我怎样才能读取文本框的值,并通过ipValue=@[ValueOfTextBox]传递给控制器​​?

使用电子邮件文本框的简单的ASP.NET MVC订阅表单将以如下方式实现:

模型

来自表单的数据被映射到这个模型

 public class SubscribeModel { [Required] public string Email { get; set; } } 

视图

视图名称应与控制器方法名称匹配。

 @model App.Models.SubscribeModel @using (Html.BeginForm("Subscribe", "Home", FormMethod.Post)) { @Html.TextBoxFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email) <button type="submit">Subscribe</button> } 

调节器

控制器负责请求处理并返回适当的响应视图。

 public class HomeController : Controller { public ActionResult Index() { return View(); } [HttpPost] public ActionResult Subscribe(SubscribeModel model) { if (ModelState.IsValid) { //TODO: SubscribeUser(model.Email); } return View("Index", model); } } 

这是我的项目结构。 请注意,“首页”视图文件夹与HomeController名称匹配。

ASP.NET MVC结构

你可以使用jQuery:

 <input type="text" name="IP" id="IP" value=""/> @Html.ActionLink(@Resource.ButtonTitleAdd, "Add", "Configure", new { ipValue ="xxx", TypeId = "1" }, new {@class = "link"}) <script> $(function () { $('.link').click(function () { var ipvalue = $("#IP").val(); this.href = this.href.replace("xxx", ipvalue); }); }); </script> 

尝试这个。

视图:

 @using (Html.BeginForm("Login", "Accounts", FormMethod.Post)) { <input type="text" name="IP" id="IP" /> <input type="text" name="Name" id="Name" /> <input type="submit" value="Login" /> } 

控制器:

 [HttpPost] public ActionResult Login(string IP, string Name) { string s1=IP;// string s2=Name;// } 

如果你可以使用模型类

  [HttpPost] public ActionResult Login(ModelClassName obj) { string s1=obj.IP;// string s2=obj.Name;// } 

通过使用ajax方法的另一种方法:

视图:

  @Html.TextBox("txtValue", null, new { placeholder = "Input value" }) <input type="button" value="Start" id="btnStart" /> <script> $(function () { $('#btnStart').unbind('click'); $('#btnStart').on('click', function () { $.ajax({ url: "/yourControllerName/yourMethod", type: 'POST', contentType: "application/json; charset=utf-8", dataType: 'json', data: JSON.stringify({ txtValue: $("#txtValue").val() }), async: false }); }); }); </script> 

控制器:

 [HttpPost] public EmptyResult YourMethod(string txtValue) { // do what you want with txtValue ... }