我有一個應該實現調度的ASP.NET MVC3應用程序的開始。我已經在我的模型如下:ASP.NET MC3 - 創建記錄和支持記錄的單個接口
public class Schedule
{
public int ScheduleID { get; set; }
public bool isDisabled { get; set; }
[DisplayName("For Delivery")]
public bool isDeliver { get; set; }
public int Count { get; set; }
public virtual ICollection<TimeofDay> Times { get; set; }
public virtual Location Location { get; set; }
public int Week { get; set; }
public int weekday { get; set; }
}
public class TimeofDay
{
[Key]
public int TimeID {get;set;}
public DateTime Time { get; set; }
}
模型應該接受0個或更多天的實體的時候,我通過使用JavaScript來創建一個新的輸入字段:
function createtimefield() {
var TimeDiv = document.getElementById('timefields');
var newDivInput = document.createElement("input");
newDivInput.name = "Times";
idText="Time" + GLOBAL_timeDivIdCount++;
newDivInput.id = idText;
newDivInput.value = "12:00 am";
TimeDiv.appendChild(newDivInput);
}
我的控制器將工作文件接受傳遞的數據,直到我將數據添加到時間字段。這應該會在TimeofDay表中創建由模型生成的新實體,並鏈接回ScheduleID。我不希望兩個接口輸入這個簡單的數據,但似乎無法找到在單個操作中用MVC3創建兩個實體的方法。有人有主意嗎?
安德魯
(謝謝您的閱讀)
按照要求控制器是:
public ActionResult Create(Schedule schedule, string[] schedTimes)
{
if (ModelState.IsValid)
{
Schedule newschedule = db.Schedule.Add(schedule);
db.SaveChanges();
return RedirectToAction("Index");
}
......
}
我現在意識到我需要創建將包括視圖模型我的兩個時間表類和字符串數組。我將創建時間表,然後通過字符串數組進行迭代,並創建TIMEOFDAY對象
能否請你添加的代碼片段爲您'Controller'或使其更翔實的? –
您是否在控制器中直接使用實體框架或DAL?這在你創建從MVC/UI層到DAL的依賴關係時並不好。看到我的答案在這裏:http://stackoverflow.com/questions/7474267/mvc3-and-entity-framework/7474357#7474357 –
第一塊代碼是在我的模型,因爲是EF。有沒有更好的辦法? – Andrew