1

Создание моего первого MVC MVC-нокаута MVC.Показать текст при нажатии кнопки

Я добавил установку модели 3 дат. Контроллер назначает 3 даты. Затем они отображаются на экране, используя вид:

<p>First Date: @ko.Html.TextBox(m => m.FirstDate)</p> 
<p>Second Date: @ko.Html.TextBox(m => m.SecondDate)</p> 
<p>Third Date: @ko.Html.TextBox(m => m.ThirdDate)</p> 

@ko.Apply(Model) 

Символ @ ko.Apply (модель) является основной частью, которая отображает дату 3. Я пытаюсь только показать даты 3, когда кнопка нажата, так IV поместить код внутри формы и использовать кнопку:

<form id="displaydates" method="post" > 
<p>First Date: @ko.Html.TextBox(m => m.FirstDate)</p> 
<p>Second Date: @ko.Html.TextBox(m => m.SecondDate)</p> 
<p>Third Date: @ko.Html.TextBox(m => m.ThirdDate)</p> 

<input id="btn" type="button" value="click" @ko.Apply(Model) /> 
</form> 

Проблема не будучи этим больше не отображает дату в текстовом поле, они покажите их рядом с кнопкой. В recpa: я хочу, чтобы каждая дата появлялась внутри текстового поля при нажатии кнопки (а не рядом с кнопкой при загрузке страницы - это то, что происходит atm).

Любые идеи? enter image description here

Обновление Попробовал добавить кнопку, но теперь даты вообще не отображаются, даже если кнопка нажата.

Вид:

@using PerpetuumSoft.Knockout 
@model KnockOutMVC3Dates.Models.DatesModel  
@{ 
    var ko = Html.CreateKnockoutContext(); 
} 

<p>First Date: @ko.Html.TextBox(m => m.FirstDate)</p> 
<p>Second Date: @ko.Html.TextBox(m => m.SecondDate)</p> 
<p>Third Date: @ko.Html.TextBox(m => m.ThirdDate)</p> 

@ko.Html.Button("Display","Index","Dates",null,null) 

Даты Контроллер:

public ActionResult Index() 
     { 
      return View 
       ( new DatesModel 
        { 
         FirstDate = DateTime.Now, 

         SecondDate = DateTime.Now.AddYears(1).AddMonths(1), 
         ThirdDate = DateTime.Now.AddYears(2).AddMonths(2) 
        } 
       ); 

     } 

Модель:

public class DatesModel 
{ 
    public DateTime FirstDate { get; set; } 
    public DateTime SecondDate { get; set; } 
    public DateTime ThirdDate { get; set; } 
} 

Любая помощь или идеи приветствуются ??

ответ

0

Возможно, вы хотите что-то подобное?

<input id="btn" type="button" value="click" onclick="@(ko.Apply(Model))" /> 

Я не особенно знаком с Knockout JS, но оказывается, что возвращаемое значением ko.Apply(Model) является связкой JS для заполнения поля вашего. Если вы хотите запустить это при щелчке по кнопке, вам понадобится выше. Прямо сейчас вы записываете нагрузку JS на свой тег ввода, который просто ломается.

+0

спасибо за ответ, но она оказывает тот же эффект. Пожалуйста, см. Оригинальное сообщение для другого обновления. Спасибо – John

0

вход тег может быть использован здесь, как на OnClick событие и может дать название модели также попробовать это ...

Смежные вопросы