1

创建我的第一个 ASP.NET 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(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>

问题是这不再在文本框中显示日期,它们显示在按钮旁边。要recpa:我希望每个日期在单击按钮时出现在文本框中(而不是在页面加载时出现在按钮旁边 - 这就是atm发生的情况)。

有任何想法吗? 在此处输入图像描述

更新尝试添加一个按钮,但现在根本不显示日期,即使单击该按钮也是如此。

看法:

@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; }
}

欢迎任何帮助或想法?

4

2 回答 2

0

输入标签可以在这里使用 在 onclick 事件中,您可以给出模型的名称,也可以试试这个...

于 2013-04-22T09:08:43.253 回答
0

也许你想要这样的东西?

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

我对 Knockout JS 不是特别熟悉,但它的返回值似乎ko.Apply(Model)是一堆 JS 来填充您的字段。如果您想在单击按钮时运行它,您将需要上述内容。现在,您正在将大量 JS 写入您的输入标签,这简直就是破坏。

于 2013-04-18T13:36:16.927 回答