Knockout and InitializeViewBag method (MVC)



Visual studio不理解以下示例中的方法InitializeViewBag("Simple list"(。它是如何制作的?这种方法存在吗?

为什么在这个例子中,它被使用:示例

public class SimpleListModel
{
    public string ItemToAdd { get; set; }
    public List<string> Items { get; set; }
    public void AddItem()
    {
        Items.Add(ItemToAdd);
        ItemToAdd = "";
    }
}

剃刀

@using PerpetuumSoft.Knockout
@model KnockoutMvcDemo.Models.SimpleListModel
@{
    var ko = Html.CreateKnockoutContext();
}
@using (ko.Html.Form("AddItem", "SimpleList", null, new { id = "myform" }))
{
    <span>New item:</span>
    @ko.Html.TextBox(m => m.ItemToAdd).ValueUpdate(KnockoutValueUpdateKind.AfterKeyDow n) 
    <button type="submit" @ko.Bind.Enable(m => m.ItemToAdd.Length >
}

控制器

public class SimpleListController : BaseController
{
    public ActionResult Index()
    {
        InitializeViewBag("Simple list");
        var model = new SimpleListModel { Items = new List<string> { "Alpha", "Beta", "Gamma" } };
        return View(model);
    }
    public ActionResult AddItem(SimpleListModel model)
    {
        model.AddItem();
        return Json(model);
    }
}

查看 github 中 BaseController 的源代码,我可以看到 InitializeViewBag 方法就是在那里定义的。这就是SimpleListController访问它的方式。如果你有相同的BaseController实现,但该方法仍然没有被识别,我会认为这很烦人,比如这里或那里有一个额外的括号,或者在其他地方有一个重复的BaseController。

相关内容

最新更新