我正在尝试在我的应用程序中的模型中动态创建一个url但是有一些问题让它工作。 这就是我的工作
UrlHelper url = new UrlHelper(); var link = "<a href="+@url.Action("ActionName","ControllerName", new { controller = "ControllerName", action = "ActionName", id = UrlParameter.Optional },"http")+">Link</a>";
但是当我尝试运行它时,我收到以下错误:
值不能为空。 参数名称:routeCollection
拜托,我将非常感谢您解决此问题。
我正在研究MVC 5,ASP.Net 4.5,Entity Framework 6
答案 0 :(得分:-1)
如果您将urlHelper注入视图模型,则可以访问它然后创建链接:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new ViewModel(this.Url);
return View(model);
}
public ActionResult About()
{
return View();
}
}
public class ViewModel
{
private readonly UrlHelper _urlHelper;
public ViewModel(UrlHelper urlHelper)
{
_urlHelper = urlHelper;
}
public string AboutLink
{
get { return _urlHelper.Action("About", "Home"); }
}
}
Razor观点:
@model ViewModel
<a href="@Model.ActionLink">About link</a>
一些一般性建议和良好做法:
@Url.GenerateProductLink(model.ProductId)