在此項目上工作,我再次卡住。我認爲我需要在旁邊顯示一個菜單。菜單從桌子上拉出來。在這一邊,我有一個問題,從另一個表中拉出來。在這裏面,會有另外一些表格提出的建議。有了這個問題,我有幾個輸入,單選按鈕和一個用於反饋的文本框,它們將以不同的表格結尾。所有這些都必須使用主表中的ID來進行,這樣當信息保存在結果表中時,它就知道它所屬的主記錄是什麼。該頁面可以帶有/ Audit/302,但是當您將子菜單更改爲下一個問題時,您如何獲得該問題並維護該ID。對於每個問題,都會有一個該ID的條目。我已經建立了關係,這就是它的樣子。 在一個視圖中具有ID的多個模型
2011年8月2日
我也補充說,拉複選框從表中調用分數列表的視圖模型(OK,關注,N/A)
,我有呈現與頁面它從AuditSchedules中提取記錄並檢索一些信息。在佈局中,我還有一個側面菜單(部分),它呈現一系列將選擇不同部分和MainQuestion(部分)的動作鏈接。我們正在努力達到這一點。由於我添加了viewModel來填充複選框,並將文本保存到AuditSchedule和MainQuestion的ID中。我的問題是我打電話給ID來從表中選擇分數的ID,它是從AuditSchedule中獲取ID。給我一個沒有找到的數據。 這裏是我的控制器:
//get
public ActionResult _Forms(int score)
{
AuditFormEdit viewModel = new AuditFormEdit();
viewModel.ScoreInstance = _db.Scores.Single(r => r.ScoreID == score);
viewModel.InitializeScoreCheckBoxHelperList(_db.Scores.ToList());
return View(viewModel);
}
//post
[HttpPost]
public ActionResult _Forms(int score, AuditFormEdit viewModel)
{
if (ModelState.IsValid)
{
viewModel.PopulateCheckBoxsToScores();
_db.Entry(viewModel.ScoreInstance).State = System.Data.EntityState.Modified;
_db.SaveChanges();
return RedirectToAction("/");
}
else
{
return View(viewModel);
}
}
這裏是我的ViewModel:
public class AuditFormEdit
{
public Models.Score ScoreInstance { get; set; }
public List<ScoreCardCheckBoxHelper> ScoreCardCheckBoxHelperList { get; set; }
public void InitializeScoreCheckBoxHelperList(List<Models.Score> ScoreList)
{
if (this.ScoreCardCheckBoxHelperList == null)
this.ScoreCardCheckBoxHelperList = new List<ScoreCardCheckBoxHelper>();
if (ScoreList != null
&& this.ScoreInstance != null)
{
this.ScoreCardCheckBoxHelperList.Clear();
ScoreCardCheckBoxHelper spacerProductCheckBoxHelper;
string spacerTypes =
string.IsNullOrEmpty(this.ScoreInstance.ScoreName) ?
string.Empty : this.ScoreInstance.ScoreName;
foreach (Models.Score scoreType in ScoreList)
{
spacerProductCheckBoxHelper = new ScoreCardCheckBoxHelper(scoreType);
if (spacerTypes.Contains(scoreType.ScoreName))
spacerProductCheckBoxHelper.Checked = true;
this.ScoreCardCheckBoxHelperList.Add(spacerProductCheckBoxHelper);
}
}
}
public void PopulateCheckBoxsToScores()
{
this.ScoreInstance.ScoreName = string.Empty;
var scoreType = this.ScoreCardCheckBoxHelperList.Where(x => x.Checked)
.Select<ScoreCardCheckBoxHelper, string>(x => x.ScoreName)
.AsEnumerable();
this.ScoreInstance.ScoreName = string.Join(", ", scoreType);
}
public class ScoreCardCheckBoxHelper : Models.Score
{
public bool Checked { get; set; }
public ScoreCardCheckBoxHelper() : base() { }
public ScoreCardCheckBoxHelper(Models.Score scoreCard)
{
this.ScoreID = scoreCard.ScoreID;
this.ScoreName = scoreCard.ScoreName;
}
}
}
這裏是鏈接和控制器,拉向上翻頁,這是佈局的身體:
public ActionResult Audit(int id)
{
var auditToDetail = _db.AuditSchedules.Single(r => r.AuditScheduleID == id);
return View(auditToDetail);
}
鏈接看起來像這樣:
/AuditSchedule/Audit/257
讓我知道你是否需要別的東西。
我已經使用了代碼優先的方法,並且所有的表格都有模型,其中的關係稱爲out。
謝謝
什麼是你的問題?你嘗試過什麼嗎?你有沒有嘗試寫一些代碼?您是否遇到過我們可以在此討論的代碼的一些特定問題? – 2012-08-01 16:41:11
我的問題是我如何填充這個視圖保持這個ID。不,我沒有保留我嘗試過的任何東西,因爲我真的不知道從哪裏開始。我是一名PHP程序員,這是我第一個C#MVC項目。 – 2012-08-01 16:44:50
如果你不知道從哪裏開始使用ASP.NET MVC,我會在這裏推薦你:http://asp.net/mvc。然後,當以後你有什麼我們可以討論的時候,不要猶豫,回到這裏問一些更具體的問題。 – 2012-08-01 16:49:43