使用@ Html.ActionLink将多个参数传递给控制器

时间:2018-04-23 18:00:40

标签: c# asp.net-mvc

我完全希望解决方案能像我忘记的小细节一样简单,但对于我的生活,我无法弄清楚我做错了什么

行动链接:

 @Html.ActionLink(
        linkText: "Confirm",
        actionName: "AdminVitalBitsCD",
         controllerName: "Configuration",
         routeValues: new
         {
              Title = Model.VitalBit.Title,
              Message = Model.VitalBit.Message,
              IsActive = Model.VitalBit.IsActive,
              IsPriority = Model.VitalBit.IsPriority,
              bitName = Model.VitalBit.BitType.Name,
              Created = Model.VitalBit.Created

         },
              htmlAttributes: null
       )

控制器:

[HttpGet]
public ActionResult AdminVitalBitsCD(string Title, string Message, bool IsActive, bool IsPriority, string bitName, DateTime Created)
{ 
    return View("~/Views/Configuration/AdminVitalBits.cshtml", viewModel);
}

当我点击我的链接时,我的控制器中会出现断点,并且不会抛出任何错误。问题是所有参数都是null或其默认值(Created = {1/1/0001 12:00:00 AM})。我忘记了简单的事情吗?

如果还有其他需要,请告诉我。提前致谢

1 个答案:

答案 0 :(得分:1)

一种更简单的方法,并且对扩展开放是将JSON对象发送回控制器。您需要创建一个等效的C#POCO类并在控制器中使用它,但它非常简单。

[HttpGet]
public ActionResult AdminVitalBitsCD(PocoDataClass data)
{ 
    return View("~/Views/Configuration/AdminVitalBits.cshtml", viewModel);
}

将此类添加到C#项目中。

public class PocoDataClass 
{
   public string Title { get; set; }
   public string Message { get; set; }
   ...
}