私は奇妙な問題に直面しています。現在、カスタマイズされた Date Picker と DateTime Picker を使用しています。最初のものは正しく機能しています (データがバインドされています)、2 番目のものはそうではありません (何もバインドされていません)。
日付ピッカー ヘルパー拡張機能:
public static MvcHtmlString BootstrapDatePickerFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes = null)
{
var className = "pickADate";
const string format = "{0:dd/MM/yyyy}";
const string dataFormat = "dd/MM/yyyy";
var dict = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
dict["class"] = dict.ContainsKey("class") ? dict["class"] + " " + "form-control" : "form-control";
if (dict.ContainsKey("disabled"))
{
className = "";
}
var input = helper.TextBoxFor(expression, format, dict);
const string span = "<span class=\"input-group-addon\"><span class=\"glyphicon glyphicon-calendar\"></span></span>";
var div = string.Format("<div data-format=\"{0}\" class=\"input-group date {1}\">", dataFormat, className);
return new MvcHtmlString(div + input.ToHtmlString() + span + "</div>");
}
を使用した日付ピッカー html:
using (Html.FormGroupFor(x => x.StartDate, new { ng_class = "{'has-error': !form.StartDate.$valid}" }))
{
@Html.LabelFor(x => x.StartDate, new { @class = "control-label" })
@Html.BootstrapDatePickerFor(x => x.StartDate, new { @class = "form-control", @ng_required = "task.Recurrence != 'None'", @ng_model = "task.StartDate" })
}
したがって、この部分は機能しています... task.StartDate は値を返し、検証は機能しています。
現在、ほぼ同じ DateTime ピッカー:
DateTime ピッカー ヘルパー拡張機能:
public static MvcHtmlString BootstrapDateTimePickerFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes = null)
{
var className = "pickADateTime";
var format = "{0:dd/MM/yyyy HH:mm}";
var dataFormat = "dd/MM/yyyy hh:mm";
var dict = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
dict["class"] = dict.ContainsKey("class") ? dict["class"] + " " + "form-control" : "form-control";
if (dict.ContainsKey("disabled"))
{
className = "";
}
var input = helper.TextBoxFor(expression, format, dict);
const string span = "<span class='input-group-addon'><span class='glyphicon glyphicon-calendar'></span></span>";
var div = string.Format("<div data-format='{0}' class='input-group date {1}'>", dataFormat, className);
return new MvcHtmlString(div + input.ToHtmlString() + span + "</div>");
}
を使用したDateTimeピッカーhtml:
using (Html.FormGroupFor(x => x.StartDate, new { ng_class = "{'has-error': !form.StartDate.$valid}" }))
{
@Html.LabelFor(x => x.StartDate, new { @class = "control-label" })
@Html.BootstrapDateTimePickerFor(x => x.StartDate, new { @class = "form-control", @ng_required = "meeting.Recurrence != 'None'", @ng_model = "meeting.StartDate" })
}
<p>meeting Start Date {{meeting.StartDate}}</p>
視覚的な結果:
ご覧のとおり、{{meeting.StartDate}} は何も返しません。私は多くのことを試しましたが、日付ピッカーで作業している間、ピッキングがバインディングを発射していないようです。変...