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.
}
感謝