将数据从sql数据库拉入文本字段

本文关键字:文本 字段 数据库 数据 sql | 更新日期: 2023-09-27 17:57:55

我有一个学生表,我想在存储在学生表中的配置文件页面上显示学生的姓名。

这就是我对我的控制器的想法:

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方法,这样在点击保存后,如果在同一个框中更改,就可以保存。

将数据从sql数据库拉入文本字段

您的控制器可能看起来像这样:

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);
}

在上面的get中,您可以传入一个id,然后从数据库中获取记录。使用检索到的数据填充模型属性,并将该模型传递到视图中。

然后在下面的post操作中,您接受模型作为参数,检查模型状态并处理数据。我在这里显示了一个重定向,但在帖子执行后,您可以返回任何想要的视图。

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