Mam aplikację internetową MVC4 i obecnie mam kilka @helper
, których używam na wielu stronach, zdefiniowanych w cshtml. Problem polega na tym, że muszę je zdefiniować na każdej stronie, z której są używane. Czy jest możliwe utworzenie pliku .cshtml
zawierającego wszystkie moje @helper
i dołączenie tej strony do moich widoków?Przenoszenie pomocników maszynki do golenia do innego pliku
tj. Jest używany w każdym widoku indeksu w obszarze cms.
@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>
}
Ta sama definicja, ten sam kod, to samo wszystko, ale jest w kodzie co najmniej 15 razy.
To zależy, co organizm z tych metod są, ale polecam po prostu mieć statyczny plik klasy ('.cs'), który ma wszystkie typowe funkcje w. Możesz dołączyć ten plik do pliku '.cshtml' z' @include MyProject.MyHelpers' na przykład. – musefan
Mam zaktualizowany kod, aby ułatwić odpowiedź – bizzehdee
Jest to możliwość zdefiniowania metod wielokrotnego użytku pomocnika przy użyciu składni @helper jest dostępna, patrz: http://weblogs.asp.net/scottgu/archive/ 2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx –