C# 如何在asp.net mvc 4中将数据库中的项显示为标签文本

C# 如何在asp.net mvc 4中将数据库中的项显示为标签文本,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,因此,我试图显示一些从数据库检索到的文本,并希望将它们显示为标签或仅显示在页面上。我在显示此文本时遇到问题,以下是我的情况: 控制器: public ActionResult _StudentName(int id) { id = 12; var model = new StudentNameModel(); using (var db = new School()) { var result = f

因此,我试图显示一些从数据库检索到的文本,并希望将它们显示为标签或仅显示在页面上。我在显示此文本时遇到问题,以下是我的情况:

控制器:

public ActionResult _StudentName(int id)
    {
        id = 12;
        var model = new StudentNameModel();
        using (var db = new School())
        {
            var result = from s in db.Students
                         where s.ID == id
                         select s.StudentName;
            model.StudentName = result.ToString();
        }
        return View(model);
    }
我的模型:

public class StudentNameModel
{
    [Display(Name = "Student Name")]
    public string StudentName { get; set; }
}
我的看法是:

    @model Adams.Models.StudentNameModel
     <fieldset>
     @Html.LabelFor(m => m.StudentName)
     @Html.TextBoxFor(m => m.StudentName)
</fieldset>
@model Adams.Models.StudentNameModel
@LabelFor(m=>m.StudentName)
@Html.TextBoxFor(m=>m.StudentName)
似乎您只需要

@Html.DisplayFor(m => m.StudentName)
而不是

@Html.TextBoxFor(m => m.StudentName)
顺便说一下,将您的查询更改为

var studentName = (from s in from s in db.Students
                         where s.ID == id
                         select s.StudentName)
                  .FirstOrDefault();
if (student != null)
   model.StudentName = studentName;

您希望该值作为只读标签还是作为用户可以编辑的文本框中的初始值?@glosrob我只想将其作为只读标签-但我也将使用textbos的想法,让用户在不同的功能上进行编辑,因此最好同时使用这两种方法。在您的操作方法中设置一个断点
\u StudentName
并尝试调试,检查结果是否有任何值或值not@Karthik我做到了,当我调试它时,它甚至还没有到达动作方法。我对错误或可能遗漏的内容感到迷茫。您是否有控制器操作的
[HttpPost]
,请检查?此外,您的ControllerAction前面加了
\uu
。您的视图名是否为
\u StudentName.cshtml
?如果没有,请将您的控制器操作转到控制器操作中的
StudentName
,以使其命中。尝试此操作后,未显示任何内容。这是否意味着它没有从数据库中提取任何要显示的内容?@072et似乎是这样,是的。你没有使用TextBoxFor,是吗?我尝试了TextBoxFor,但没有显示任何内容。我确信我有一个项目要从数据库返回,因为我测试了sql查询-我的控件中是否有我看不到的错误?@072et您是否尝试过您的查询的编辑版本?还是不行?我的查询运行得很好,但我觉得在我的代码中,它甚至没有到达我的控制器来检索名称。