2013-02-06 1 views
2

그래서 데이터베이스에서 검색 한 텍스트를 레이블로 표시하거나 페이지에 표시하고 싶습니다. 내가 여기에이 텍스트를 표시하는 데 문제 및 AM 것은 내가 무엇을 가지고 :데이터베이스에서 항목을 asp.net mvc의 레이블 텍스트로 표시하는 방법 4

컨트롤러 :

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> 
+0

당신이 읽기 전용 레이블로 또는 텍스트 상자에 사용자의 inital 값으로 값을 원하십니까 편집 할 수 있습니까? – glosrob

+0

@glosrob 나는 단지 읽기 전용 레이블로 사용하고 싶었습니다.하지만 사용자가 다른 기능을 편집 할 수 있도록 텍스트 보스 아이디어를 사용하여 두 가지 방법을 모두 사용하는 것이 좋습니다. – 072et

+0

Action 메서드'_StudentName'에 중단 점을 넣고 디버깅을 시도하고 결과에 값이 있는지 여부를 확인하십시오. –

답변

3

당신이 바로 보인다 필요함

@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; 
+0

시도했지만 아무것도 표시되지 않았습니다. 다시 말하면 데이터베이스에서 아무것도 표시하지 않는다는 뜻입니까? – 072et

+0

@ 072et 그렇게 보입니다. TextBoxFor와 아무런 관계가 없습니까? –

+0

나는 TextBoxFor를 시도하고 아무 것도 표시하지 않았다. SQL 쿼리를 테스트 한 데이터베이스에서 반환 할 항목이 있다고 확신합니다. 내 컨트롤에서 볼 수없는 잘못된 것이 있습니까? – 072et

관련 문제