我是新來的Web編程,我不得不使用JQuery數據時間插件。我在數據時間轉換方面遇到了很多問題,所以我對我做了一個簡單的處理,但奇怪而長的邏輯處理。 而不是創建一個DateTime屬性。我做了兩個,一個是字符串,其他爲空日期時間在視圖模型更改模型狀態在視圖模型(添加自定義驗證)
注:所有這些代碼是寫在視圖模型
public DateTime? InitialStartDate
{
get
{
return istartDate;
}
set
{
istartDate = value;
}
}
public string IStartDateString
{
get
{
if (istartDate == null)
{
return "";
}
else
{
return istartDate.Value.ToString("MM/dd/yyyy");
}
}
set
{
if (string.IsNullOrEmpty(value))
{
istartDate = null;
}
else
{
DateTime TempDate=DateTime.Min;
if(DateTime.TryParseExact(value, "MM/dd/yyyy", CultureInfo.InvariantCulture, out TempDate)
{
InitialStartDate=TempDate;
}
else{
InitialStartDate=null;
ErrorMessage="Can not convert date";
}
}
}
}
請告訴我如何很好地處理它。
其次
例如這個邏輯是好的,然後我想補充的ModelState錯誤。例如
if(DateTime.TryParseExact(value, "MM/dd/yyyy", CultureInfo.InvariantCulture, out TempDate)
{
InitialStartDate=TempDate;
}
else{
InitialStartDate=null;
ModelState.AddError('Date is not right ');
}
有沒有這樣的事情。請幫忙非常感謝您閱讀我的所有問題:)
Forexample我分析它像
InitialStartDate= DateTime.ParseExact(value, "MM/dd/yyyy", CultureInfo.InvariantCulture);
和價值是1/1/201 它會拋出異常。我不希望它拋出異常,但添加驗證錯誤,所以稍後在控制器中,當我檢查ModelState.IsValid 它返回false,我可以在視圖中顯示它。
@Html.LabelFor(model => model.InitialStartDate, htmlAttributes: new { @class = "control-label col-offset-2" })
@Html.TextBoxFor(model => model.IStartDateString, new { @id = "initialstartdate", value = Model.IStartDateString, @class = "form-control", tabindex = "34" })
@Html.ValidationMessageFor(model => model.InitialStartDate, "", new { @class = "text-danger" })
我從視圖中設置其值。
與我的模型中的所有其他屬性。我有這個
[DataType(DataType.Date)]
public DateTime? StartTime { get; set; }
你想解決什麼樣的問題?在使用jQuery日期時間插件的MVC中,通常我使用帶有'Html.EditorFor'模型綁定的jQuery datepicker,將模型發送到控制器,並在給出無效日期時間格式時執行'ModelState.AddModelError(「message」)'。請儘可能詳細解釋我的詳細預期結果。 –
@TetsuyaYamamoto在問題結尾添加了更多文字。 – Charlie
「value」變量從哪裏獲取數據?如果你有模特課只是展示它。我想你想使無效的日期時間格式的'ModelState'失效,並在你的視圖中顯示錯誤信息。 –