2013-02-06 62 views
0

我有一張學生表,我想在存儲在學生表中的個人檔案頁面上顯示學生的名字。將數據從sql數據庫拉入文本域

這就是我心目中的我的控制器:

public ActionResult StudentName(StudentModel model) 
{ 
    if(ModelState.IsValid) 
    { 
     using (var db = new SchoolDataContext()) 
     { 
      var result = from s in db.Students select s.StudentName; 
      model.StudentName = result.ToString(); 
     } 
    } 
} 
在我看來

我有:

@Html.LabelFor(s => s.StudentName) 
@Html.TextBoxFor(s => s.StudentName) 

我的模型:

public class StudentModel 
{ 
    [Display(Name = "Student Name")] 
    public string StudentName{ get; set; } 
} 

我需要一個GET方法來獲得學生姓名顯示在文本框中,同時有一個post方法,以便它可以保存,如果在單擊保存後同一個框。

+0

我在這裏看不到一個問題 –

+0

@四十二個我想知道如果我寫或不爲了什麼,我有我的控制器。 – 072et

回答

0

也許您的控制器將是這個樣子:

public ActionResult StudentName(int studentId)//you can't pass a model object to a get request 
{ 
     var model = new StudentModel(); 
     using (var db = new SchoolDataContext()) 
     { 
      //fetch your record based on id param here. This is just a sample... 
      var result = from s in db.Students 
         where s.id equals studentId 
         select s.StudentName.FirstOrDefault(); 
      model.StudentName = result.ToString(); 
     } 
    return View(model); 
} 

在得到以上,你可以在一個id傳遞,然後從數據庫讀取記錄。使用檢索到的數據填充模型屬性,並將該模型傳遞到視圖中。

然後在下面的發佈操作中,您接受模型作爲參數,檢查模型狀態並處理數據。我在此處顯示重定向,但您可以在執行後執行後返回任何您想要的視圖。

[HttpPost] 
public ActionResult StudentName(StudentModel model) 
{ 
    if(ModelState.IsValid) 
    { 
     using (var db = new SchoolDataContext()) 
     { 
      //update your db record 
     } 
     return RedirectToAction("Index"); 
    } 
    return View(model); 

} 
+0

我現在正在嘗試這個,但我想知道(int studentId),我傳入get - 它將獲取id與數據庫中的id進行比較? – 072et

+0

我的操作方法沒有被擊中,我不知道爲什麼 - 你可能會再次看看? – 072et

+0

@ 072et將'

相關問題