Tôi có một ứng dụng web MVC4 và hiện tại tôi đang sử dụng một vài trang @helper
trên nhiều trang, được xác định trong cshtml. Vấn đề là, tôi phải xác định chúng trên mỗi trang chúng được sử dụng. Có thể tạo một tệp .cshtml
chứa tất cả các trang của tôi @helper
và đưa trang đó vào chế độ xem của tôi không?Di chuyển các trình trợ giúp dao cạo thông thường sang một tệp khác
tức là điều này được sử dụng trên mỗi chế độ xem Chỉ mục trong khu vực cm.
@helper DisplayPager(Int32 CurrentPage, Int32 MaxPages) {
String IsActive = "";
<div class="pagination pagination-centered">
<ul>
<li><a href="@Url.Action("Index", new { id = CurrentPage - 1 > 0 ? CurrentPage - 1 : 1 })">Prev</a></li>
@for (int i = 0; i < MaxPages; i++)
{
IsActive = ((i + 1) == CurrentPage) ? "active" : "";
<li class="@(IsActive)"><a href="@Url.Action("Index", new { id = i + 1 })">@(i + 1)</a></li>
}
<li><a href="@Url.Action("Index", new { id = CurrentPage + 1 < MaxPages ? CurrentPage + 1 : MaxPages })">Next</a></li>
</ul>
</div>
}
Cùng một định nghĩa, cùng mã, mọi thứ giống nhau, nhưng mã hiện có trong mã ít nhất 15 lần.
Nó phụ thuộc những gì cơ thể của những phương pháp này, nhưng tôi sẽ khuyên bạn chỉ có một tập tin lớp tĩnh ('.cs') có tất cả các chức năng thông thường của bạn trong. Bạn có thể bao gồm tệp đó trong tệp '.cshtml' của bạn với' @include MyProject.MyHelpers' chẳng hạn. – musefan
tôi đã cập nhật mã để làm cho việc trả lời dễ dàng hơn – bizzehdee
Khả năng xác định các phương pháp trợ giúp có thể sử dụng lại bằng cú pháp @helper có sẵn, xem phần sau: http://weblogs.asp.net/scottgu/archive/ 2011/05/12/asp-net-mvc-3-và-the-helper-syntax-trong-razor.aspx –