在表单提交时无法获取输入类型=“文本”值?

时间:2013-10-25 05:26:52

标签: c# asp.net-mvc-4 razor

在Razor视图中,我有input type="text",隐藏字段和按钮。我可以从Form集合中访问隐藏字段,但奇怪的是我无法在我的操作中访问input type="text"值。我不确定我的理解是否正确,但我在想,因为形式内的所有字段都应该在行动中可用。

以下是我的代码:

   @using (Html.BeginForm())
    {
    <div style="margin-top: 40px;">
    <input id="txtDateFrom" class="span2" size="16" value="@Model.StartDate.ToString("dd/MM/yyyy") " readonly="readonly" type="text">
    @Html.Hidden("currencyCode", (object)ViewBag.currencyCode)
    </div>
    <button onclick="@Url.Action("ExchangeRateDetails", "ExchangeRate")" class="btn btn-lg     span2 ARML50px">
    }

我非常感谢您的时间,指导和帮助。

2 个答案:

答案 0 :(得分:2)

隐藏输入的工作原理是您在Html助手@ Html.Hidden的帮助下渲染它。该帮助器使用name属性呈现输入字段。

您的<input type="text">缺少名称属性。所以试着这样写:

<input id="txtDateFrom" name="txtDateFrom" class="span2" size="16" value="@Model.StartDate.ToString("dd/MM/yyyy") " readonly="readonly" type="text" />

name =“txtDateFrom”将使值显示在FormCollection中。

答案 1 :(得分:1)

试试这种方式

按钮

不需要onclick="@Url.Action("ExchangeRateDetails", "ExchangeRate")"

按以下方式更改按钮

<button type="submit" class="btn btn-lg span2 ARML50px">

现在您的控制器可以获取输入文本

[HttpPost]
Public ActionResult ExchangeRateDetails(YourmodelClass xxx)
{
 string dates=Model.StartDate;
}
  

本网站有how to send a model values from view to controllers的很多很多答案,请参阅本页右上角的相关讨论。