c# - 时间跨度自定义模型活页夹
问题描述
我有一个来自剃须刀的时间字符串类型(例如:下午 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}。
如何使用自定义模型绑定器来实现?
解决方案
您可以使用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>
推荐阅读
- sql-server - 如何从 Azure Powershell Runbook 连接到本地 SQL Server?
- java - 在 Intellij 中,当我创建新包并右键单击 new -> java 类后不显示
- undefined - GatsbyImage 在本地提取数据时工作,但不使用 Strapi 和 Gatsby
- firebase - Firebase 和 BigQuery 报告事件的用户差异
- c# - 直接编辑 Access 表时如何更新 DataSet?
- azure - Azure blob 到期的预签名 URL
- javascript - 通过 ID 查找数组对象并在 React 中返回
- java - @DataProvider 在类级别的 testng
- html - 如何在节点js服务器端获取表单值h1,p作为输入
- elasticsearch - Elassandra >> Elasticsearch 数据迁移、对账