Asp.net mvc 在.NETMVC中如何将多个参数从视图传递到控制器
我需要在click事件中将两个参数id和日期从视图传递到控制器端。这可能是一个基本问题,但我不能这样做 我尝试了简单的代码Asp.net mvc 在.NETMVC中如何将多个参数从视图传递到控制器,asp.net-mvc,Asp.net Mvc,我需要在click事件中将两个参数id和日期从视图传递到控制器端。这可能是一个基本问题,但我不能这样做 我尝试了简单的代码 Code <a href='/Abc/Details/id?=@website_id, date?=@date' class="" id="prev" >Prev</a> code 以及如何在控制器端获取这些参数 如果可能的话,我不想使用“Ajax”或JavaScript首先,您需要在routeconfig文件中创建自定义路由或通过添加以下代码行
Code <a href='/Abc/Details/id?=@website_id, date?=@date' class="" id="prev" >Prev</a>
code
以及如何在控制器端获取这些参数
如果可能的话,我不想使用“Ajax”或JavaScript首先,您需要在routeconfig文件中创建自定义路由或通过添加以下代码行来启用mapmvcattributteroutes
routes.MapMvcAttributeRoutes();
然后在您的控制器中,在上面定义的操作中添加如下内容
[Route("/Abc/Details/{id}/{date}")]
[Route("/Abc/Details/{id?}/{date?}")]
public ActionResult Details(int id, string date)
如果你想让它为空的话
[Route("/Abc/Details/{id?}/{date?}")]
您的操作方法如下所示
[Route("/Abc/Details/{id}/{date}")]
[Route("/Abc/Details/{id?}/{date?}")]
public ActionResult Details(int id, string date)
使用@Html.ActionLink而不是硬编码链接
如果要使用自定义路线,请将其添加到默认路线上方
routes.MapRoute(
"MyCustomRoute",
"Archive/{entrydate}",
new { Controller = "ABC", action = "Details",Id = UrlParameter.Optional,Date = UrlParameter.Optional});
现在在你看来
@Html.RouteLink("Link Text", "MyCustomRoute", new { Id = YourId, Date=YourDate})
我发现在控制器操作中声明变量更容易:
public IActionResult Create(string FirstName, string MiddleName, string
LastName, string ADUsername, string ADId, string ADName, string ADemail)
{
//do this
}
然后可以在视图中按名称分配变量:
<a asp-controller="Employees" asp-action="Create" asp-route-
FirstName="@item.FirstName" asp-route-MiddleName="@item.MiddleName" asp-
route-LastName="@item.LastName" asp-route-ADUsername="@item.ADUsername" asp-
route-ADId="@item.ADId" asp-route-ADName="@item.ADName" asp-route-
ADemail="@item.ADemail">Add Employee</a>
添加员工
../Details?id=@website\u id&date=@date”
但是为什么不使用@Html.ActionLink()
来正确生成这个呢?-@Html.ActionLink(“Prev”,“Details”,“Abc”,new{id=“@website\u id”,date=“@date”},new{id=“Prev”})
@StephenMuecke:我试过了,但对我不起作用。你犯了一个错误,没有使用我展示的代码,或者你的代码中有其他错误。我没有收到你建议的控制器旁的任何参数。是的,也许你是对的,但对我不起作用。当你没有在参数中传递任何值时,我就是这么说的ers-只需将其硬编码为@Html.ActionLink(“Prev”,“Details”,“Abc”,new{id=“1”,date=“2016-2-8”),new{id=“Prev”})即可查看其工作原理