首页 > 解决方案 > 时间跨度自定义模型活页夹

问题描述

我有一个来自剃须刀的时间字符串类型(例如:下午 5:00),我想在将它timespan传递给控制器​​时将其绑定到。

示例代码:

剃刀:

@model Project.Models.MyModel

@Html.TextBoxFor(m => m.Time, new { @class = "sTime" , @id = "txtTime" })


<script type="text/javascript">
    $(function () {   
        $(".sTime").kendoTimePicker({
            format: "h:mm tt",
            parseFormats: ["HH:mm"]
        });
        $("#txtTime").data("kendoTimePicker").value("@Model.Time");
    });
 </script>

控制器:

[HttpPost]
public ActionResult Edit(MyModel model)
{
    //some code here.
    return View();
}

模型:

 public class MyModel
 {
     public TimeSpan Time { get; set; }
 }

现在,问题是时间不能从剃刀绑定到控制器。发布值始终为 {00:00:00}。

如何使用自定义模型绑定器来实现?

标签: c#asp.net-mvckendo-timepicker

解决方案


您可以使用textboxfor()hiddenfor() 将值传递给您的controller

@{ 
    var modelList = (List<MyModel>)ViewBag.List;                                      
} 

@foreach (var item in modelList) {
    @Html.TextBox("time", item.Time.HasValue ? item.Time.Value.ToString() : 
    "", new { @class = "sTime" })
   @Html.HiddenFor(m=>m.Time) //just add this line with your model value.
}

<script type="text/javascript">
    $(function () {   
        $(".sTime").kendoTimePicker({
            format: "h:mm tt",
            parseFormats: ["HH:mm"]
        });
    });
 </script>

推荐阅读