Я новичок в Knockout MVC и пытаюсь отобразить <img />
, если выбранная дата — суббота или воскресенье. Я хочу, чтобы он отображался, как только я изменяю значение (без отправки формы).
Моя попытка заключалась в использовании "using(ko.If(...))":
МОДЕЛЬ
public class TestModel
{
public DateTime? Date { get; set; }
public bool Weekend
{
get
{
if (Date.HasValue)
{
return Date.Value.DayOfWeek == DayOfWeek.Saturday || Date.Value.DayOfWeek == DayOfWeek.Sunday;
}
return false;
}
}
}
CSHTML
@using PerpetuumSoft.Knockout
@model MyApp.TestModel
@{
var ko = Html.CreateKnockoutContext();
}
...
@ko.Html.TextBox(x => x.Date, new { class="datefield" })
using(ko.If(x => x.Date.Value.DayOfWeek == DayOfWeek.Saturday || x.Date.Value.DayOfWeek == DayOfWeek.Sunday))
{
<img src="~/Images/warning-icon.png" width="22" height="22" title="Warning, it's the weekend." />
}
...
<script type="text/javascript" >
$(document).ready(function () {
$(".datefield").datepicker({ dateFormat: 'd M yy', changeYear: true });
});
</script>
@ko.Apply(Model)
Я пытался использовать этот подход, но он говорит, что не может разобрать привязку из-за «Value ()». Мне удалось заставить его работать с CheckBox с логическим значением и TextBox со строковым условием... но не с datetime.
Надеюсь, я понял свою проблему.
Заранее благодарю за любую помощь.
Q.