2012-05-08 31 views
6

Lưu ý rằng đây không phải là câu hỏi trùng lặp. Tôi biết chúng tôi có thể chỉ định một loại chế độ xem cơ sở trong phần dao cạo của chế độ xem/web.config. Nhưng tôi muốn view1 của tôi, view2 kế thừa từ baseviewA và view3, view4 kế thừa từ baseviewB. Trong dao cạo làm thế nào tôi có thể làm điều này như thế trong công cụ ASPX:Thay đổi lớp cơ sở của chế độ xem dao cạo trong mã xem

<%@ Page Language="C#" Inherits="Test.Myproject.Web.Mvc.ViewBase" %> 
<%@ Control Language="C#" Inherits="Test.Myproject.Web.Mvc.PartialViewBase" %> 

EDIT Tôi không quan tâm đến mô hình. Trong câu hỏi của tôi baseviewA và baseviewB là các lớp hoàn toàn khác nhau.

+0

http://stackoverflow.com/questions/3963834/whats-the -base-class-of-a-dao cạo-view-in-asp-net-mvc3 –

+0

@CodeJammr: Điều đó thay đổi tất cả các lớp cơ sở của khung nhìn. Tôi muốn có một vài lớp cơ sở khác nhau. –

Trả lời

9

Bạn có thể thay đổi base class in Razor với từ khóa @inherits, các lớp cơ sở của bạn chỉ cần lấy từ System.Web.Mvc.WebViewPage.

Vì vậy, mẫu của bạn:

<%@ Page Language="C#" Inherits="Test.Myproject.Web.Mvc.ViewBase" %>

Sẽ là

@inherits Test.Myproject.Web.Mvc.ViewBase

đâu

public class Test.Myproject.Web.Mvc.ViewBase : System.Web.Mvc.WebViewPage 
{ 
} 
+0

Có thể sử dụng cú pháp '<%' trong dao cạo thay vì '@' không? –

+0

@ZainShaikh không có '<%' không được hỗ trợ trong dao cạo chỉ trong các trang aspx. Vấn đề của bạn với việc sử dụng biểu tượng '@' là gì? – nemesv

+0

Tôi có thể đăng câu hỏi riêng cho việc này nhưng vẫn tiếp tục. Tôi có một tập tin mẫu mà tôi sử dụng với thư viện javascript bên dưới (thư mục 'underscore') để xây dựng giao diện người dùng. Tôi muốn làm cho cùng một tập tin mẫu từ phía máy chủ bằng cách sử dụng 'dao cạo' động cơ hoặc một số khác tốt hơn so với dao cạo. –

2

Các thừa kế chỉ định loại mô hình sẽ được sử dụng trong chế độ xem. Tương tự điều này có thể được thực hiện trong Razor.

<%@ Page Language="C#" Inherits="Test.Myproject.Web.Mvc.ViewBase<Test.Models.MyModel>" % 

tương đương với sau trong Razor

@model Test.Models.MyModel 

này là như nhau trong cả hai quan điểm và quang cảnh một phần, Vì vậy

<%@ Control Language="C#" Inherits="Test.Myproject.Web.Mvc.PartialViewBase<Test.Models.MyModelB>" %> 

tương đương với

@model Test.Models.MyModelB 
+0

Không có mô hình kinh doanh. Tôi chỉ muốn thay đổi lớp cơ sở của khung nhìn. –

+1

OK, thì cách duy nhất là giữ cho các chế độ xem của bạn trong các thư mục khác nhau và có một web.config trong mỗi thư mục bạn muốn ghi đè. – Manas

+0

Bạn có chắc rằng chúng ta có thể có một vài tệp web.config trong mỗi thư mục xem sẽ ghi đè cấu hình trong thư mục 'view /' cơ sở không? –

Các vấn đề liên quan