将datetime和checkbox值传递给Controller

时间:2017-04-24 08:59:20

标签: c# asp.net-mvc razor

我正在尝试将两个DateTime和一个Bool从一个复选框传递给我的控制器

控制器操作:

[HttpPost]
    public ActionResult TestParse(DateTime DateFrom, DateTime DateTo, bool active)

这是我的剃刀观点:

    @using (Html.BeginForm("TestParse", "Sags", FormMethod.Post))
{
    <input type="checkbox" name="active">
    <input type="date" name="DateFrom">
    <input type="date" name="DateTo">
    <input type="submit" value="Submit">
}

它找到了控制器,但它没有传递值,它们都是null execpt for active,这是“true”我怎样才能获得这些值?

1 个答案:

答案 0 :(得分:0)

您可以创建视图模型以一起修补字段

public class SomeViewModel
{
    public DateTime DateFrom { get; set; }

    public DateTime DateTo { get; set; }

    public bool Active { get; set; }
}

表格

@model Namespace.SomeViewModel
@using (Html.BeginForm("TestParse", "Sags", FormMethod.Post))
{
    @Html.CheckBoxFor(m => m.Active)
    @Html.TextBoxFor(m => m.DateFrom)
    @Html.TextBoxFor(m => m.DateTo)
    <input type="submit" value="Submit">
}

然后在你的控制器中

[HttpPost]
public ActionResult TestParse(SomeViewModel model)

您可以使用一些js库来设置日期选择器的样式