该项目不会保存。只有成员会被保存。
当我调试AcceptVerbs(HttpVerbs.Post)时,该项中的信息为空。为什么?我该如何解决这个问题?
当它转到创建的post方法时,项不会跟随成员。并且这些项目不会被保存。我调试了这些信息,发现有0个数字项。当我按下按钮时,它为什么不保存项目呢?
仅保存成员项。
public class ClassifiedsFormViewModel
{
IClassifiedsRepository classifiedsRepository = new ClassifiedsRepository();
public Member Member { get; private set; }
public SelectList Municipalities { get; private set; }
public ClassifiedsFormViewModel(Member member)
{
Member = member;
Municipalities = new SelectList(classifiedsRepository.GetMunicipalities()
,"MunicipalityId", "Municipality1");
}
}
public ActionResult Create()
{
Member member = new Member();
Item item = new Item();
member.Items.Add(item);
return View(new ClassifiedsFormViewModel(member));
}
//
// POST: /Items/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Member member)
{
if (ModelState.IsValid)
{
try
{
classifiedsRepository.Add(member);
classifiedsRepository.Save();
return RedirectToAction("Create", new { id = member.MemberId });
}
catch
{
ModelState.AddModelErrors(member.GetRuleViolations());
}
}
return View(new ClassifiedsFormViewModel(member));
}
}发布于 2009-06-07 21:29:18
传递给create函数的成员实际上是从表单绑定的数据。为了确保它正常工作,表单上的元素必须与成员中的属性命名相同。因此,如果在成员中有名为memberName的内容,则需要将视图中的字段命名为相同的名称。
<form ...
<input type="text" name="memberName"/>
...
</form>编辑:
在读完你的评论后,我仍然不是你想要做的100%。如果你想让你已经创建的成员拥有一个项目,那么将项目创建代码下移到第二次创建。将带有项的成员传递给强类型视图。包含项的成员永远不会被持久化,因此它不会返回到控制器,也不会进入模型。
发布于 2009-06-07 21:50:29
public ActionResult Create()
{
Member member = new Member();
Item item = new Item();
member.Items.Add(item);
return View(new ClassifiedsFormViewModel(member));
}https://stackoverflow.com/questions/962855
复制相似问题