使用ASP.NET mvc4中的接口

时间:2013-05-20 03:16:38

标签: asp.net-mvc-4 razor interface

我正在尝试实现一个具有getFirstStudent方法的接口。我的想法是让所有使用我的局部视图的视图模型都可以使用此方法。通过这种方式,我将解决将多个视图模型(理论上不可能)传递给局部视图的问题。

接口

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的字符串

2 个答案:

答案 0 :(得分: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;
        }
    }
}

答案 1 :(得分:0)

你可以使用它。

return StudentList.First().SutdentId;