0

我希望我的 mvc 以与我的经典 asp 示例相同的方式运行。我的经典 asp 示例很简单。我可以使用 np 向列表框中添加尽可能多的值。我的 mvc 只允许一个,然后每次添加一个时替换每个值。我怎样才能让我的 mvc 像 Classic asp.net 一样工作。

经典的 Asp.net

aspx。

 <asp:textbox runat="server" ID="StoreToAdd" ></asp:textbox>
 <asp:Button ID="btnAddStore" runat="server" Text="Add" OnClick="btnAddStore_Click1" />

后端c#

  protected void btnAddStore_Click1(object sender, EventArgs e)
    {
        lstStores.Items.Add(StoreToAdd.Text);
        StoreToAdd.Text = "";

    }

MVC 视图

 @using(Html.BeginForm("Index", "Home")) { 
 @Html.TextBoxFor(mod => mod.StoreToAdd, new { Style = "height:20px; " })
 <div align="center">
  <input type="submit" name="addS" id="addS" value="Add" 
        /></div>

 @Html.ListBoxFor(model => model.lstStores, new     
 new MultiSelectList(Model.lstStores),
  new { style = "width:225px;height:255px" })

}

控制器

[HttpPost]
    public ActionResult Index(HomeModel model)
    {

        model.lstStores = new List<string>();
        model.lstStores.Add(model.StoreToAdd);
       return View(model);
    }
4

1 回答 1

0

您在控制器中执行此操作:

model.LstStores = new List<string>();

您不希望每次都重置您的列表吗?

也许您可以先检查列表是否已经实例化,如果有,只需添加新项目:

    [HttpPost]
    public ActionResult Index(HomeModel model)
    {
        if (model.lstStores != null)
        {
            model.lstStores.Add(model.StoreToAdd);
        }
        else
        {
            model.lstStores = new List<string>();
            model.lstStores.Add(model.StoreToAdd);
        }

        return View(model);
    }
于 2013-07-02T16:19:52.040 回答