ASP.NET MVC如何获取文本框输入值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

我有一个文本框输入和一些单选按钮。例如我的文本框输入HTML看起来像这样:

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

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

<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名称匹配。

用户回答回答于

可以使用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>

扫码关注云+社区