Asp.net mvc ActionLink未将参数传递给控制器--asp.Net MVC 4

Asp.net mvc ActionLink未将参数传递给控制器--asp.Net MVC 4,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,请告诉我,我有一个问题,我的一个控制器现在几个小时。我在整个项目中成功地使用了类似的方法。但是,由于某些原因,此控制器的参数始终为空。下面是我的控制器 [Authorize(Roles = "Employer")] public class EmployerController : Controller { [HttpGet] public ActionResult Index(long? id) { } } 下面是我的行动链接 <p>@Html.ActionL

请告诉我,我有一个问题,我的一个控制器现在几个小时。我在整个项目中成功地使用了类似的方法。但是,由于某些原因,此控制器的参数始终为空。下面是我的控制器

[Authorize(Roles = "Employer")]
public class EmployerController : Controller
{
  [HttpGet]
  public ActionResult Index(long? id)
  {

  }
}

下面是我的行动链接

 <p>@Html.ActionLink("View jobs", "Index", "Employer", new { id = userid})</p>
我希望四号公路能为我的行动提供服务

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new
                {
                    controller = "Home",
                    action = "Index",
                    id = UrlParameter.Optional
                }
以前我的控制器参数是employerId,然后我认为这可能是我的错误的原因,因为我在路由中使用id。我换了id,但仍然是空的。我的url返回类似的内容

Employer?Length=8
长度是从哪里来的?请问我哪里出错了?如有任何帮助,我们将不胜感激。

您必须使用:


您当前正在使用,它假定控制器名称为路由值。(这是一个8个字符的序列)

问题是您使用了错误的
@Html.ActionLink
重载

而不是

<p>@Html.ActionLink("View jobs", "Index", "Employer", new { id = userid })</p>
@Html.ActionLink(“查看工作”、“索引”、“雇主”、“新{id=userid}”)

试一试

@Html.ActionLink(“查看作业”、“索引”、“雇主”,新的{id=userid},空)

@Html.ActionLink(“查看作业”、“索引”、“雇主”、“新{id=userid},新{}”)


您使用了错误的
操作链接重载。网上有很多这样的问题,请使用搜索。可能重复的
@Html.ActionLink("View jobs", "Index", "Employer", new { id = userid}, null)
<p>@Html.ActionLink("View jobs", "Index", "Employer", new { id = userid })</p>
<p>@Html.ActionLink("View jobs", "Index", "Employer",new { id = userid }, null)</p>
<p>@Html.ActionLink("View jobs", "Index", "Employer",new { id = userid }, new{})</p>