C# 淘汰和初始化EWBAG方法(MVC)

C# 淘汰和初始化EWBAG方法(MVC),c#,asp.net-mvc,asp.net-mvc-4,razor,knockout.js,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Knockout.js,VisualStudio不理解下面示例中的方法InitializeViewBag(“简单列表”)。 它是如何制作的?这个方法存在吗 为什么在本例中使用它: 型号 public class SimpleListModel { public string ItemToAdd { get; set; } public List<string> Items { get; set; } public void AddItem() { Items

VisualStudio不理解下面示例中的方法InitializeViewBag(“简单列表”)。 它是如何制作的?这个方法存在吗

为什么在本例中使用它:

型号

public class SimpleListModel
{
    public string ItemToAdd { get; set; }
    public List<string> Items { get; set; }

    public void AddItem()
    {
        Items.Add(ItemToAdd);
        ItemToAdd = "";
    }
}
公共类SimpleListModel
{
公共字符串ItemToAdd{get;set;}
公共列表项{get;set;}
公共无效附加项()
{
项目。添加(项目添加);
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);
    }
}
@使用PerpetuumSoft.Knockout
@模型敲除MVCDEMO.Models.SimpleListModel
@{
var ko=Html.CreateKnockoutContext();
}
@使用(ko.Html.Form(“AddItem”,“SimpleList”,null,new{id=“myform”}))
{
新项目:
@TextBox(m=>m.ItemToAdd).ValueUpdate(KnockoutValueUpdateKind.afterkeydown)
m、 项目添加长度>
}
控制器

@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);
    }
}
公共类SimpleListController:BaseController
{
公共行动结果索引()
{
初始化eviewbag(“简单列表”);
var模型=新的SimpleListModel{Items=新列表{“Alpha”、“Beta”、“Gamma”};
返回视图(模型);
}
公共行动结果附加项(SimpleListModel模型)
{
model.AddItem();
返回Json(模型);
}
}

查看github中的for BaseController,我可以看到InitializeViewBag方法是在那里定义的。这就是SimpleListController访问它的方式。如果您有相同的BaseController实现,并且该方法仍然未被识别,我会认为这是一件令人讨厌的事情,比如这里或那里有一个额外的括号,或者在其他地方有一个重复的BaseController。

您的意思是“Visual studio不理解方法InitializeViewBag(“简单列表”)?你会犯错误吗?可能您没有添加对所需库的引用?错误:InitializeViewBag不存在