如何将文本框值传递给MVC Action?

时间:2018-03-06 11:12:53

标签: c# asp.net-mvc razor

我已经尝试过以下但是我得到了恭维错误:

  

名称' txtMakeModelTypeCode'在当前背景下不存在。

<label>Type Code</label>
<input type="text" id="txtMakeModelTypeCode" name="txtMakeModelTypeCode" />
<label>Make</label>
<input type="text" id="txtMake" name="txtMake"/>
<label>Model</label>
<input type="text" id="txtModel" name="txtModel"/>
<a href="@Url.Action("CreateMakeModel", "Vehicle", new { MakeModelTypeCode = txtMakeModelTypeCode, make = txtMake, model = txtModel })">Create</a>

我也尝试过使用表单,但我不想使用提交按钮。是否可以使用普通按钮?

@using (Html.BeginForm("CreateMakeModel", "Vehicle"))
{
  <label>Type Code</label>
  @Html.TextBox("txtMakeModelTypeCode")
  <label>Make</label>
  @Html.TextBox("txtMake")
  <label>Model</label>
  @Html.TextBox("txtModel")
  <input type="submit" value="Create" />
}

1 个答案:

答案 0 :(得分:2)

MVC与ASP.Net Webforms的工作方式不同。您创建的文本框在代码中不可用。您可以使用控件来渲染html,并通过模型完成数据处理。

所以使用TextBoxFor:

@using (Html.BeginForm("CreateMakeModel", "Vehicle"))
{
    <label>Type Code</label>
    @Html.TextBoxFor(m => m.MakeModelTypeCode)
    <label>Make</label>
    @Html.TextBoxFor(m => m.Make)
    <label>Model</label>
    @Html.TextBoxFor(m => m.Model)
    <input type="submit" value="Create" />
}

然后在你的控制器中,在帖子之后,你应该在模型中有发布的数据:

public ActionResult Index(CreateMakeModel model) // or is it Vehicle?
{
    // whatever you do here:
    string code = model.MakeModelTypeCode;
}