0
我遇到了EditorForModel通过向我的模型填充提交的数据进入我的方式的情况。让我告诉你那个让我陷入困境的用例。控制EditorForModel填充数据的方式
一方面我有一个表格,可以保存到数据库:
public class Person {
[HiddenInput(...)]
public int Id {get; set;}
public string Name {get; set;}
}
在我的控制器中的另一边,我有一些动作,让我记录用户:
public class PersonsController {
public ActionResult User(bool SaveAsNew, Person p)
{
if (SaveAsNew)
{
myRepository.Add(p);
myRepository.SaveChange();
// p.Id is now a new Value.
}
else {
Person updateMe = myRepository.Query()
.Where(repoP => repoP.Id = p.Id)
.First();
updateMe.UpdateWith(p)
myRepository.SaveChange();
}
return PartialView(p);
}
}
在视图方面,我打电话给@Html.EditorForModel()
和一些Javascript,它会更新隐藏的输入,具体取决于您点击“保存”还是“另存为新的”。
但是我在这里遇到麻烦,因为EditorForModel
从发布的数据中填充数据,所以当用户点击“Save as New”时,Id永远不会有机会改变。
所以我想知道是否有某种方式来清除提交的数据。喜欢的东西:
if (SaveAsNew)
{
myRepository.Add(p);
myRepository.SaveChange();
Request.ClearPostData();
// p.Id is now a new Value.
}
感谢