2012-09-21 65 views
0

嗨,我是一個模型,它具有Datetime類型的屬性。當我發佈表格時,日期屬性小時的時間應該是23:59。哪種方式是有道理的。asp.net mvc post model並指定小時

  • 創建自定義的模型綁定
  • 更新日期的操作方法
  • 我使用jQuery的DateTimePicker和它的格式是MM.DD.YY它不包括小時。

    [Authorize, HttpPost] 
    public ActionResult Edit(int? id, OrderFormViewModel formModel) 
    { 
        var model = repository.GetShippingsById(id.Value); 
    
        if (TryUpdateModel(model, "Order")) 
        { 
         model.Date = new DateTime(formModel.Order.Date.Year, formModel.Order.Date.Month, formModel.Order.Date.Day, 23, 59, 59); 
    
         repository.Save(); 
         return RedirectToAction("Details", new { @id = model.Id }); 
        } 
    
        return View(formModel); 
    } 
    
+0

如果是模型的需求,則將其放入日期字段的設置器中。 –

回答

0

如果問題只是要添加小時(和小時是恆定值),可以使用ActionFilterAttribute,並結合集小時的步驟,所以在這種情況下,你的肌動蛋白,你會得到正確的日期值。

如果你使用自定義表單提交,你可以通過JS更新值,但在這種情況下,你應該注意本地化(如果它很重要)。

所以我認爲ActionFilterAttribute是更好的方法。

private DateTime _date 
public DateTime Date{ 
    set{ 
    this._date = value; 
    //ADD CODE TO ADD HOURS 
    } 
    get{return _date ;} 
} 
+0

但對象是在實體框架中。是可以設置它在部分班? – bayramucuncu

+0

您可以將功能添加到部分課程中,該課程將使您的日期返回小時。並且你可以爲dateTime類型創建擴展,它將得到帶有小時的日期public static Datetime AddHours(this DateTime d){ // Add hours }; –

0

我會用你的第二個選項 - 在行動更新:喜歡

但是,如果你可以更新模型,您可以創建屬性。 原因:

  • 它在邏輯上屬於控制器(圖應該沒有比視圖相關的其他計算)
  • 它更簡單用C#做
  • 其更直接&易於維護

但像往常一樣,你的問題沒有正確的答案。達到可用性,可維護性,易於理解...你知道其餘的...

希望這會有所幫助。