如何在mvc中将模型控制器的date.time值发布

时间:2014-11-18 23:14:48

标签: asp.net-mvc entity-framework model-view-controller

我不知道如何将DateTime值从Html.BeginForm传递给我的模型。 我不想使用日历。 我可以使用隐藏字段将其传递给模型吗?

public partial class gpAdmin
    {
        public long Id { get; set; }
        public string name { get; set; }
        public System.DateTime registerDate { get; set; }

    }

并查看

 @using (Html.BeginForm())
    {
        <div>
            <div class="editor-label">
                @Html.Label("Name")
                @Html.TextBoxFor(a => a.name)
                @Html.ValidationMessageFor(m => m.name)
            </div>
           ......
    }

并注册控制器

 [HttpPost]
 public ActionResult Index(gpAdmin admin)
 {
     if (ModelState.IsValid)
     {
         ds.gpAdmin.Add(admin);
         ds.SaveChanges();
     }
     return view();
}

我应该为registerDate字段DateTime字段做些什么?

1 个答案:

答案 0 :(得分:0)

您可以使用@Html.EditorFor(a=>a.registerDate).

您还可以考虑向字段添加属性

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public System.DateTime registerDate { get; set; }

如果您希望隐藏它,请使用@Html.HiddenFor(a=>a.registerDate)

但是如果你必须使用@Html.HiddenFor我建议根本不使用它并在模型构造函数本身中初始化默认日期..使用以下代码

public partial class gpAdmin
{
    public gpAdmin()
    {
        registerDate = DateTime.Now;
    }
    public long Id { get; set; }
    public string name { get; set; }
    public System.DateTime registerDate { get; set; }
}