根據我昨天詢問的問題,我試圖找到一種動態創建更多文本框的方法,並將這些映射到我的視圖模型,以便在發佈到服務器時它將全部動態獲取(js)生成文本框並將其發佈到諸如List之類的對象。發佈到控制器的PetaPoco複雜類型
爲了讓這個混亂的問題的一個例子:
我有一個標有「主要聯繫人」文本框和票據創建者可以輸入聯繫人姓名和電話號碼在此框中。我想要做的基本上是,切換到三個文本框。一個用於名稱,電子郵件和電話號碼而不是一個框。然後,我將創建一些JavaScript,它將動態創建另外三個框,以將另一個聯繫人添加到此List集合中。然後,當用戶提交表單以修改或創建工單時,它會將模型內的集合傳遞給控制器。但是,Petapoco有點令人困惑。讓我告訴你的控制器:
[HttpPost]
public ActionResult ModifyTicket(Ticket model)
{
string userString = User.Identity.Name.Replace("ONHOLD\\", "");
if (ModelState.IsValid)
{
model.CreatedDate = DateTime.Now;
model.LastUpdateBy = Util.GetEmployeeIdByName(userString);
model.LastUpdate = DateTime.Now;
model.IsComplete = false;
model.ClientString = Util.GetClientNameById(model.ClientId);
model.LocationString = Util.GetLocationNameById(model.LocationId);
model.Update();
SuccessMessage = "You have successfully updated ticket number: " + model.TicketId + " for the following client: " + model.ClientString + ".";
return RedirectToAction("Index");
}
ErrorMessage = "Woops! Something went wrong, please check back in a few moments, if the problem persists please contact development.";
return RedirectToAction("Index");
}
簡單的答案,這將是我的數據庫模型將包含一個List對象爲這個確切原因。但是,我正在使用PetaPoco,我不完全確定它將如何完成。我可以手動將集合添加到我的數據庫模型中,但是當我根據任何數據庫模式更改重新生成模型時,我將失去對該文件所做的任何更改。
我還使用了我的視圖使用DataAnnotations進行驗證的部分類。然而,這個類與它僅包含用於提供客戶端驗證的DataAnnotations的數據庫模型相同。
如果有人瞭解我想要完成的任務,我會非常樂意提供更多信息來澄清任何缺失的部分。我只需要一個解決方案,因爲我找不到解決此問題的堅實途徑!