2013-05-20 26 views
0

我想實現一個有getFirstStudent方法的接口。我的想法是使這個方法可用於所有使用我的局部視圖的視圖模型。這樣,我將解決將多個視圖模型(理論上不可能)傳遞給局部視圖的問題。在ASP.NET中使用接口mvc4

接口

public Interface IMiniView 
{ 
     string GetFirstStudentId(); 
} 

FirstViewmodel:

namespace XXX.ViewModel 
{ 
    public class StudentsViewModel: IMiniView 
    { 
     public IEnumerable<StudentInfoViewModel> StudentList { get; set; } 

     public string GetFirstStudentId() 
     { 
      return = ??????? 
     } 
    } 
} 

我曾經讓我的作爲局部視圖的第一個學生......

@Model.StudentsViewModel.StudentList.ElementAt(0).StudentID 

現在我想訪問在GetFirstStudent方法中。請注意,StudentInfoViewModel有一個名爲StudentID的字符串

回答

0

這有幫助嗎?

namespace CivicaEducation.Business.Ces.ViewModel 
{ 
    public class StudentsViewModel: IMiniView 
    { 
     public IEnumerable<StudentInfoViewModel> StudentList { get; set; } 

     private StudentInfoViewModel FirstStudent 
     { 
      get 
      { 
       if (StudentList == null || StudentList.Count() == 0) { 
        return null; 
       } 

       return StudentList.FirstOrDefault(); 
      } 
     } 

     public string GetFirstStudentId() 
     { 
      return FirstStudent == null : string.Empty ? FirstStudent.Id; 
     } 

        // you can add more methods/properties to you interface like this 
     public string GetFirstStudentName() 
     { 
      return FirstStudent == null : string.Empty ? FirstStudent.Name; 
     } 
    } 
} 
+0

喜凱恩感謝答覆..但是編譯器不喜歡它說視圖模型不列入包含任何defition爲FirstorDefault或計數 – user1032957

+1

添加在參考'System.Linq'命名空間 – Kane

0

您可以使用它。

return StudentList.First().SutdentId;