从视图发送帖子到控制器

时间:2018-03-01 17:25:57

标签: c# asp.net-mvc

我是Asp.Net的新成员,我尝试从视图到控制器发布帖子,如:

@model Models.CapturaViewModel
  @using(Html.BeginForm("EnviarIncrementos", "Controller", FormMethod.Post, htmlAttributes: new { @class = "table-bordered" }))
 {
<div class="form-group">
  <div class="col-md-12">
    <div class="col-md-3">
      Fecha de movimiento:
    </div>
    <div class='col-md-4'>
      <div class="form-group">
        <div class='input-group date' id='datetimepicker1'>
          <input type='text' class="form-control" />
          <span class="input-group-addon">
             <span class="glyphicon glyphicon-calendar"></span>
          </span>
        </div>
      </div>
    </div>
    <div class="col-md-2 col-md-push-3">
      <input type="submit" value="Guardar" class="btn btn-xs" style="background-color:#3399FF;color:#FFFFFF" />
    </div>
  </div>
</div>
}

你可以看到我在那里有一个日期选择器。我想知道如何从控制器方法中的日期选择器中获取值:

[HttpPost]
public ActionResult EnviarIncrementos()
        {
            return RedirectToAction("Index");
        }

非常感谢帮助。此致

1 个答案:

答案 0 :(得分:1)

您输入的.cshtml需要name属性才能通过POST将数据传递给控制器​​。

不知道属性CapturaViewModel有什么,但我们假设你有一个属性public DateTime DatePicker { get; set; }

有了这个,现在你需要修改你的.cshtml

<input type='text' class="form-control" /> 

<input type='text' name="DatePicker" class="form-control" />

或使用HtmlHelper

@Html.TextBoxFor(m => m.DatePicker, new { @class = "form-control" })

最后,您的控制器缺少接受CapturaViewModel的参数。将您的控制器更改为:

[HttpPost]
public ActionResult EnviarIncrementos(CapturaViewModel model)
{
    return RedirectToAction("Index");
}