Asp.net mvc 值不能为null。参数名称:routeCollection
我试图在我的应用程序中的模型内动态创建url,但在使其工作时遇到一些问题。 我就是这么做的Asp.net mvc 值不能为null。参数名称:routeCollection,asp.net-mvc,razor,model,Asp.net Mvc,Razor,Model,我试图在我的应用程序中的模型内动态创建url,但在使其工作时遇到一些问题。 我就是这么做的 UrlHelper url = new UrlHelper(); var link = "<a href="+@url.Action("ActionName","ControllerName", new { controller = "ControllerName", action = "ActionName", id = UrlParameter.Optional },"http")+">L
UrlHelper url = new UrlHelper(); var link = "<a href="+@url.Action("ActionName","ControllerName", new { controller = "ControllerName", action = "ActionName", id = UrlParameter.Optional },"http")+">Link</a>";
UrlHelper url=新的UrlHelper();var link=“”;
但当我尝试运行它时,会出现以下错误:
值不能为空。
参数名称:routeCollection
请帮我解决这个问题,我将不胜感激
我正在使用MVC 5、ASP.Net 4.5、Entity Framework 6如果将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>
@model视图模型
以及一些一般性建议和良好做法:
- 不要在模型或控制器中创建HTML,这是视图作业视图
- 模型只是一个数据包,不要把任何逻辑放在那里。将控制器用于表示特定的逻辑
- 您可以在视图中访问UrlHelper,从那里使用它。另外,为urlHelper构建扩展方法以创建特定的Url,特别是在需要其他参数的情况下,例如Razor文件中的用法如下:
@Url.GenerateProductLink(model.ProductId)
RequestContext
传递给模型,否则您不能这样做,即使这样做也没有意义。使用@Html.ActionLink()