Khi tôi làm quen với Asp.Net MVC, tôi đang sử dụng MVC 2, tôi đã nhận thấy việc sử dụng lớp BaseViewData trong dự án Kigg mà tôi không chắc chắn cách triển khai thực hiện.Cách sử dụng Base ViewModel trong Asp.net MVC 2
Tôi muốn mỗi Chế độ xem của mình có các giá trị nhất định có sẵn. Sử dụng một iterface đến tâm trí nhưng tôi tự hỏi thực hành tốt nhất là gì và làm thế nào để Kigg làm điều đó?
Kigg
public abstract class BaseViewData
{
public string SiteTitle { get; set; }
// ...other properties
}
public class UserListViewData : BaseViewData
{
public string Title { get; set; }
// .. other stuff
}
Trong ứng dụng WebForms tôi sử dụng một BasePage được thừa kế từ System.Web.UI.Page.
Vì vậy, trong dự án MVC của tôi, tôi có điều này:
public abstract class BaseViewModel
{
public int SiteId { get; set; }
}
public class UserViewModel : BaseViewModel
{
// Some arbitrary ViewModel
}
public abstract class BaseController : Controller
{
private IUserRepository _userRepository;
protected BaseController()
: this(
new UserRepository())
{
}
}
Tham khảo phương pháp Kigg, làm thế nào để đảm bảo rằng mỗi người trong ViewModel của tôi được thừa kế từ BaseViewModel có tài sản SiteID?
Thực hành, mẫu hoặc mẫu tốt nhất tôi nên sử dụng là gì?
Bạn sẽ phải đúc bối cảnh bộ lọc để sử dụng nó như thế này: '((ViewResult) filterContext.Result) .ViewData.Model' – ajbeaven
Nhìn vào mã của tôi, tôi thực sự lưu kết quả trong một biến địa phương chuyển sang ViewResult bằng cách sử dụng 'as', sau đó kiểm tra null. – tvanfosson