【发布时间】:2014-09-15 20:20:40
【问题描述】:
我尝试在 F# 中为 MVC 5 应用程序创建 HtmlHelper,我的实现如下:
namespace FSharpStore.WebUI.HtmlHelpers
module PagingHelpers =
type HtmlHelper with
static member PageLinks(info: PagingInfo, url : UrlHelper) : MvcHtmlString =
let pageUrl x = url.Action("List", x.ToString())
let sb = new StringBuilder()
for i in 0..info.TotalPages do
let tag = new TagBuilder("a")
tag.MergeAttribute("href", pageUrl(i))
tag.InnerHtml <- i.ToString()
if i = info.CurrentPage then
tag.AddCssClass("selected")
tag.AddCssClass("btn-primary")
tag.AddCssClass("btn btn-default")
sb.Append(tag.ToString()) |> ignore
MvcHtmlString.Create(sb.ToString())
我已经尝试相应地使用它:
@using FSharpStore.WebUI.HtmlHelpers
<div class="btn-group pull-right">
@Html.PageLinks(Model.PagingInfo, this.Url)
</div>
代码不可编译,它给我消息: “System.Web.Mvc.HtmlHelper”不包含“PageLinks”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“PageLinks”(您是否缺少 using 指令还是程序集参考?)
有人在 F# 中成功完成 HtmlHelper 吗?我已经尝试在项目的不同部分使用过代码扩展,它们只是在工作。我认为剃须刀本身很特别。
【问题讨论】:
-
看看here.
标签: asp.net-mvc razor f# html-helper