这是我的班级:
public class MyItem
{
[Key]
public ItemId{get;set;}
public ItemName{get;set;}
public ItemPrice{get;set;}
}
现在我的创建页面中有一个添加按钮:
<input type="submit" value="Create" id="Create" name="Create" />
<input type ="submit" value ="Add" id ="Add" name="Create" />
我有以下控制器。在这里,我想在我的创建视图中添加ItemName和price在某种临时存储中。我不想在数据库中添加项目,但想在表格的某种html帮助器中显示添加的项目
public ActionResult Create(MyItem myitem, string Create)
{
if (Create == "Add")
{
//is there any Html helper that will save the
added items and make a view?
//can I do this without using javascript
}
else
if (ModelState.IsValid)
{
db.Items.Add(myitem);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(myitem);
}
答案 0 :(得分:2)
您可以随时使用SESSION
临时存储数据,然后当用户点击保存时,您可以从会话中获取数据并存储在数据库中
public ActionResult Create(MyItem myitem, string Create)
{
if (Create == "Add")
{
var list = Session[myitem] ?? new List<MyItem>();
list.Add(myitem);
Session[myitem] = list;
}
else
if (ModelState.IsValid)
{
var list = Session[myitem]; // add this list to DB
db.Items.Add(myitem);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(myitem);
}
答案 1 :(得分:0)
如果您不想使用会话,另一种选择可能是使用具有唯一密钥的缓存解决方案。
这是一些额外的工作,例如你必须安装缓存服务器并做一些额外的工作。但优点是我会说你会获得闪电般快速的表现。
可能是一种矫枉过正,但只是想让你知道有其他选择。如果您正在寻找高性能/可扩展系统,您可以考虑这一点。但是对于一个普通的小项目来说,就像科梅特先生所提到的那样,会议就足够了。