亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從Razor聲明式視圖使用MVC HtmlHelper擴展

從Razor聲明式視圖使用MVC HtmlHelper擴展

慕標琳琳 2019-12-16 10:57:47
我試圖在MVC 3 RTM項目的App_Code文件夾中創建Razor聲明式幫助程序。我遇到的問題是MVC HtmlHelper擴展(如ActionLink)不可用。這是因為已編譯的幫助程序派生自System.Web.WebPages.HelperPage,盡管它公開了一個Html屬性,但其類型System.Web.WebPages.HtmlHelper而不是System.Web.Mvc.HtmlHelper。我遇到的那種錯誤的例子是:'System.Web.Mvc.HtmlHelper'不包含'ActionLink'的定義,并且找不到擴展方法'ActionLink'接受類型為'System.Web.Mvc.HtmlHelper'的第一個參數(您是否缺少using指令?或裝配參考?)我唯一的解決方案是創建自己的HelperPage并覆蓋Html屬性:using System.Web.WebPages;public class HelperPage : System.Web.WebPages.HelperPage {    // Workaround - exposes the MVC HtmlHelper instead of the normal helper    public static new HtmlHelper Html    {        get { return ((System.Web.Mvc.WebViewPage) WebPageContext.Current.Page).Html; }    }}然后,我必須在每個助手的頂部寫以下內容:@inherits FunnelWeb.Web.App_Code.HelperPage@using System.Web.Mvc@using System.Web.Mvc.Html@helper DoSomething(){    @Html.ActionLink("Index", "Home")}在MVC 3中是要這么難嗎,還是我做錯了什么?
查看完整描述

4 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

看一下對這個問題Marcind的回答。您遇到的限制是在App_Code文件夾中放置聲明性視圖。


將您的助手放入App_Code中是可行的,但是有一些限制會影響某些MVC方案(例如:無法訪問標準MVC Html。)


查看完整回答
反對 回復 2019-12-16
  • 4 回答
  • 0 關注
  • 536 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號