问题描述
|
我有一个视图模型,其中包含一个包含列表的对象,并且正在使用WebGrid输出此列表。
该页面当前可以回传到多个动作,这些动作可以编辑/添加到此列表中。我想在所有回发中保留此数据,以便所有操作都可以根据操作在列表上执行的任何更改来执行。无论如何,我可以使Webgrid绑定到控制器中的模型吗?还是我需要使用会话/数据库等其他方法来获取列表?
这是我的代码,可帮助您清除我的意思。
我有一个看起来像这样的视图模型:
public class EggBasketviewmodel {
public Basket EggBasket { get; set; } // Contains list of eggs & other basket info
public Egg EggToAdd { get; set; }
}
我正在这样输出:
@model Basket.Models.EggBasketviewmodel
@{
var grid = new WebGrid(Model.Eggs); // Eggs is my list of eggs
}
@using (Html.BeginForm()) {
@Html.Partial(\"_CreateOrEditEggBasket\")
@Html.Partial(\"_CreateOrEditEgg\")
@grid.GetHtml()
<p>
<button name=\"button\" value=\"submitEgg\">Add Egg</button>
<button name=\"button\" value=\"submitBasket\">Submit Basket</button>
</p>
}
与我的控制器看起来像这样:
[HttpPost]
public ActionResult Create(EggBasketviewmodel Model,string button)
{
if (ModelState.IsValid) {
switch (button) {
case \"submitEgg\":
return this.submitEgg(Model);
case \"submitBasket\":
return this.submitBasket(Model);
default:
break;
}
} else {
return View();
}
}
public ActionResult SubmitBasket(EggBasketviewmodel Model) {
eggBasketRepository.InsertOrUpdate(Model.EggBasket);
eggBasketRepository.Save();
return RedirectToAction(\"Index\");
}
public ActionResult SubmitEgg(EggBasketviewmodel Model) {
Model.EggBasket.Eggs.Add(Model.EggToAdd);
return View(Model);
}
我以这种方式创建它,认为WebGrid将以模型绑定程序能够在POST上将其绑定到我的视图模型的方式输出数据,并因此使用WebGrid的html输出保留所有新的Eggs。 WebGrid是否可以以与模型绑定程序兼容的方式输出列表?还是我最好使用其他方法?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)