1

創建我的第一個ASP.NET MVC Knockout 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(Model)是顯示3個日期的主要部分。 我想只顯示3個日期是單擊按鈕時,所以四把代碼形式內,使用按鈕:

<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> 

問題是這不再顯示在文本框中的日期,他們將它們顯示在按鈕旁邊。 recpapa:我希望每個日期出現在文本框內單擊按鈕時(而不是旁邊的按鈕,當頁面加載 - 這是什麼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))" /> 

我不是特別熟悉淘汰賽JS但現在看來,中ko.Apply(Model)返回值是一堆JS來填充你的領域。如果你想通過點擊按鈕來運行它,你需要上面的。現在,您正在寫入一大堆JS到輸入標籤中,這正在打破。

+0

感謝你的答覆,但它具有相同的效果。請參閱原始文章以進行其他更新。謝謝 – John

0

輸入標籤,這裏可以使用像 在onclick事件ü可以給模型的名字也 試試這個...