Мне интересно, как я называю HtmlHelper.ActionLink()
метод, описанный в LinkExtensions.ActionLink Method (HtmlHelper, String, String) Ниже мой контроллер, в пустой MVC проекта:Как использовать HtmlHelper.ActionLink) метод расширения (в действии контроллера
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
namespace TempMVC.Controllers
{
public class DataController : Controller
{
public ActionResult Index()
{
HtmlHelper.GenerateLink(
RequestContext requestContext,
RouteCollection routeCollection,
string linkText,
string routeName,
string actionName,
string controllerName,
RouteValueDictionary routeValues,
IDictionary<string, object> htmlAttributes
); //OK
HtmlHelper.GenerateRouteLink(
RequestContext requestContext,
RouteCollection routeCollection,
string linkText,
string routeName,
RouteValueDictionary routeValues,
IDictionary<string, object> htmlAttributes
); //OK
HtmlHelper.ActionLink(string linkText, string actionName); //Error
return View();
}
}
}
в то время как я могу использовать HtmlHelper.GenerateLink()
и HtmlHelper.GenerateRouteLink()
методы, я получаю следующее сообщение об ошибке при попытке использовать HtmlHelper.ActionLink():
The type name 'ActionLink' does not exist in the type 'System.Web.Mvc.HtmlHelper'
Обратите внимание, что я га ve объявил System.Web.Mvc.Html
наверху, и я вижу его в моем файле Web.config.
Могу ли я использовать HtmlHelper.ActionLink() метод в контроллере?
спасибо ** YD1m **. Кажется, это то, что я хочу, но я не могу его скомпилировать. Я пытаюсь использовать [ViewContext Constructor (ControllerContext, IView, ViewDataDictionary, TempDataDictionary, TextWriter)] (http://msdn.microsoft.com/en-us/library/ee839461%28v=vs.108%29.aspx) Как я заполняю 'TextWriter'? Нет перегрузки без 'TextWriter', как вы предложили. –
Попробуйте 'new TextWriter()' и добавьте 'using System.IO;' директива. – YD1m
Фактически, 'TextWriter()' является абстрактным. Однако я получил это, чтобы заменить первую строку следующим: var h = new HtmlHelper (новый ViewContext (ControllerContext, новый WebFormView (ControllerContext, «Edit»), новый ViewDataDictionary(), новый TempDataDictionary(), Response.Output), новый ViewPage()); ' –