从视图发送帖子到控制器

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

我是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");
        }

非常感谢帮助。问候

c# asp.net-mvc
1个回答
1
投票

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

不知道什么属性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");
}
© www.soinside.com 2019 - 2024. All rights reserved.