通过html.actionlink asp.net-mvc传递多个参数

通过html.actionlink asp.net-mvc传递多个参数,asp.net-mvc,html.actionlink,Asp.net Mvc,Html.actionlink,我是NetMVC的新手。我有一个页面,它的开头有一个checkInDate,以及我从数据库中取出并使用foreach循环在页面上列出的房间列表。我在每个列表上都有一个按钮,当选中该按钮时,该按钮将传递房间id并选中。我试图通过按钮中的锚定标记传递checkInDate输入以及所选房间的id。我该怎么做呢。 @model thePortfolio.Models.CustomerRoomViewModel @{ ViewBag.Title=“索引预订”; Layout=“~/Views/Share

我是NetMVC的新手。我有一个页面,它的开头有一个checkInDate,以及我从数据库中取出并使用foreach循环在页面上列出的房间列表。我在每个列表上都有一个按钮,当选中该按钮时,该按钮将传递房间id并选中。我试图通过按钮中的锚定标记传递checkInDate输入以及所选房间的id。我该怎么做呢。

@model thePortfolio.Models.CustomerRoomViewModel
@{
ViewBag.Title=“索引预订”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
房间
@使用(Html.BeginForm())
{
@LabelFor(model=>model.Book.CheckInDate,htmlAttributes:new{@class=“controllabel col-md-2”})
@EditorFor(model=>model.Book.CheckInDate,new{htmlAttributes=new{@class=“form control”})

foreach(Model.RoomList中的var项) { var image=@item.RoomType.ToString()+“.jpg”; image=image.Replace(“,String.Empty); @DisplayFor(m=>item.RoomId)
@DisplayFor(m=>item.RoomType)
@DisplayFor(m=>item.Description) 来自 每晚 $@item.Price @if(项目预订状态) { 无法使用的 } 其他的 { @ActionLink(“预订这个”,“bookRoom”,新的{id=item.RoomId}) }

} }
嗯。。。 我认为在控制器中,需要添加一个带有id参数的方法。大概是这样的:

[HttpPost]
public ActionResult Edit(int id, CustomerNRoomViewModel model)

id参数应作为http调用的查询字符串中的值发送。

CheckInDate
在视图中是可编辑的,因此您需要使用javascript根据输入的实际值更新
href
属性。OP询问如何在链接中传递该值(即,到GET方法,而不是POST方法)@Stephen Muecke对不起,也许我的英语不及格(我不是母语),但这不是我所理解的。如果您是对的,那么您使用JavaScript浏览器端检索CheckInDate的建议是正确的。他还应该删除Html.BeginForm帮助程序(不再需要Html表单)
[HttpPost]
public ActionResult Edit(int id, CustomerNRoomViewModel model)