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

问题描述 投票:0回答:1

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

当前上下文中不存在名称“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" />
}
c# asp.net-mvc razor
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.