-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMVCHelpers.cs
54 lines (49 loc) · 2.27 KB
/
MVCHelpers.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Text;
using System.Web.Mvc;
using System.Web.Routing;
namespace MVCWebHelpers
{
public static class MVCHelpers
{
public static MvcHtmlString PageLinks(this HtmlHelper helper, PagingModel model)
{
var stringBuilder = new StringBuilder("<ul class='pager'>");
for(var i = 1; i <= model.MaxPages; i++)
{
stringBuilder.Append(String.Format("<li {2}><a href='{1}'>{0}</a></li>", i, model.UrlGeneratorFunction(i), i==model.CurrentPage ? "class=Selected" : String.Empty));
}
stringBuilder.Append("</ul>");
return MvcHtmlString.Create(stringBuilder.ToString());
}
public static MvcHtmlString AlphaLinks(this HtmlHelper helper, AlphaModel model)
{
var stringBuilder = new StringBuilder("<ul class='pager'>");
foreach (var letter in model.LetterDictionary.Keys)
{
if (model.LetterDictionary[letter] == 0)
stringBuilder.Append(String.Format("<li class='Empty'><span>{0}</span></li>", letter));
else
stringBuilder.Append(String.Format("<li {0}><a href='{1}' >{2}</a></li>",
model.SelectedLetter == letter ? "class=Selected" : String.Empty,
model.UrlGeneratorFunction(letter),
letter
));
}
stringBuilder.Append("</ul>");
return MvcHtmlString.Create(stringBuilder.ToString());
}
public static MvcHtmlString NavLink(this HtmlHelper helper, string controller, string action, Func<string, string, MvcHtmlString> func, bool showLink)
{
if (!showLink)
return MvcHtmlString.Create(String.Empty);
var routeData = helper.ViewContext.RouteData.Values;
string html = String.Format("<li {0}>{1}</li>",
routeData["controller"].ToString().ToLower() == controller &&
routeData["action"].ToString().ToLower() == action
? "class=Selected"
: String.Empty, func(action, controller));
return MvcHtmlString.Create(html);
}
}
}