Asp.net mvc ASP.NET MVC中的持久化模型数据
我有两个控制器功能:一个用于默认查看,另一个用于回发。第一个用于为模型列表指定一些默认值。第二个是向列表中添加其他值。之后,页面将显示列表的内容。现在,我失去了列表中的所有内容,除了最新的控制器函数所做的Asp.net mvc ASP.NET MVC中的持久化模型数据,asp.net-mvc,Asp.net Mvc,我有两个控制器功能:一个用于默认查看,另一个用于回发。第一个用于为模型列表指定一些默认值。第二个是向列表中添加其他值。之后,页面将显示列表的内容。现在,我失去了列表中的所有内容,除了最新的控制器函数所做的 我希望我的模型数据能够持久化,如何做到这一点?将数据持久化到数据库中(使用EF(http://msdn.microsoft.com/en-us/library/bb399572.aspx)). 将数据保存在数据库中(使用EF(http://msdn.microsoft.com/en-us/l
我希望我的模型数据能够持久化,如何做到这一点?将数据持久化到数据库中(使用EF(http://msdn.microsoft.com/en-us/library/bb399572.aspx)). 将数据保存在数据库中(使用EF(http://msdn.microsoft.com/en-us/library/bb399572.aspx)). 我想你会遇到这样的情况:
public class Model {
public List<..> List { get; set; }
...
}
public class MyController
{
public ActionResult List() {
return View(new Model { List = new List<..> { /* some items */ } });
}
[HttpPost]
public ActionResult AddToList(Model model, string itemText) {
model.List.Add(/* another item with specified text*/);
return View("List", model);
}
}
...
<form method="POST" action="/MyController/AddToList">
<input type="hidden" name="model.List[0]" value="value1" />
...
<input type="hidden" name="model.List[N]" value="valueN" />
New item text: <input type="text" name="itemText" />
...
</form>
...
公共类模型{
公共列表{get;set;}
...
}
公共类MyController
{
公共行动结果列表(){
返回视图(新模型{List=新列表{/*某些项*/}});
}
[HttpPost]
public ActionResult AddToList(模型,字符串itemText){
model.List.Add(/*具有指定文本的另一项*/);
返回视图(“列表”,模型);
}
}
在显示的列表页面中,您可以使用AddToList操作添加1个项目,也可以使用list操作初始化整个项目列表。发生的事情是很自然的,因为你不会把清单发回
如果是这种情况,则必须回发整个模型,包括列表本身,以便向现有列表添加项目
这实际上是为列表页生成正确视图的问题。触发AddToList操作的表单必须包含整个模型/列表的日期。视图生成的HTML应如下所示:
public class Model {
public List<..> List { get; set; }
...
}
public class MyController
{
public ActionResult List() {
return View(new Model { List = new List<..> { /* some items */ } });
}
[HttpPost]
public ActionResult AddToList(Model model, string itemText) {
model.List.Add(/* another item with specified text*/);
return View("List", model);
}
}
...
<form method="POST" action="/MyController/AddToList">
<input type="hidden" name="model.List[0]" value="value1" />
...
<input type="hidden" name="model.List[N]" value="valueN" />
New item text: <input type="text" name="itemText" />
...
</form>
...
。。。
...
新项目案文:
...
...
我想你会遇到这样的情况:
public class Model {
public List<..> List { get; set; }
...
}
public class MyController
{
public ActionResult List() {
return View(new Model { List = new List<..> { /* some items */ } });
}
[HttpPost]
public ActionResult AddToList(Model model, string itemText) {
model.List.Add(/* another item with specified text*/);
return View("List", model);
}
}
...
<form method="POST" action="/MyController/AddToList">
<input type="hidden" name="model.List[0]" value="value1" />
...
<input type="hidden" name="model.List[N]" value="valueN" />
New item text: <input type="text" name="itemText" />
...
</form>
...
公共类模型{
公共列表{get;set;}
...
}
公共类MyController
{
公共行动结果列表(){
返回视图(新模型{List=新列表{/*某些项*/}});
}
[HttpPost]
public ActionResult AddToList(模型,字符串itemText){
model.List.Add(/*具有指定文本的另一项*/);
返回视图(“列表”,模型);
}
}
在显示的列表页面中,您可以使用AddToList操作添加1个项目,也可以使用list操作初始化整个项目列表。发生的事情是很自然的,因为你不会把清单发回
如果是这种情况,则必须回发整个模型,包括列表本身,以便向现有列表添加项目
这实际上是为列表页生成正确视图的问题。触发AddToList操作的表单必须包含整个模型/列表的日期。视图生成的HTML应如下所示:
public class Model {
public List<..> List { get; set; }
...
}
public class MyController
{
public ActionResult List() {
return View(new Model { List = new List<..> { /* some items */ } });
}
[HttpPost]
public ActionResult AddToList(Model model, string itemText) {
model.List.Add(/* another item with specified text*/);
return View("List", model);
}
}
...
<form method="POST" action="/MyController/AddToList">
<input type="hidden" name="model.List[0]" value="value1" />
...
<input type="hidden" name="model.List[N]" value="valueN" />
New item text: <input type="text" name="itemText" />
...
</form>
...
。。。
...
新项目案文:
...
...