2015-04-23 52 views
1

我有一個值爲3:30pm的JavaScript字符串。將字符串格式的時間轉換爲C#時間跨度

我有一個MVC控制器,它的參數是TimeSpan

我做了一個jQuery的職位,控制器。如何從字符串格式獲取TimeSpan格式的時間?

+0

'TimeSpan'存儲的時間間隔,不寫一個具體的時間。使用時間跨度表示時間的唯一方法是存儲某個特定時間的間隔,即午夜。那是你要的嗎? –

+0

@pwas是的,我想存儲從午夜時間。 –

+0

好吧,所以你需要編寫自己的模型綁定器,因爲'TimeSpan'沒有默認的無參數ctor,所以默認情況下它不能綁定。 –

回答

1

由於TimeSpan沒有默認的ctro(無參數),因此不能使用默認的模型聯編程序。你需要編寫自己:

public class TimeModelBinder:DefaultModelBinder 
{ 
    public override object BindModel(ControllerContext controllerContext, 
            ModelBindingContext bindingContext) 
    { 
     var hour = controllerContext.HttpContext.Request["hours"]; 
     var minutes = controllerContext.HttpContext.Request["minutes"]; 
     var time = new TimeSpan(int.Parse(Hour), int.Parse(minutes), 0); 
     return return time; 
    } 
} 

控制器:

public ActionResult Index([ModelBinder(typeof(TimeModelBinder))] TimeSpan model) 
{ 
} 

帖子:

$.post("/home/index", { 
     hours: 5, 
     minutes: 10 }, function() { 
       //success 
     }); 

從內存

1

如果你成功地解析您的JavaScript字符串,日期時間,你可以這樣做:

DateTime.TimeOfDay 

之後,將代表從午夜開始的時間跨度經過一天的一部分。

相關問題