在MVC5中,将ActionLink转换为HTML按钮
在MVC5中,将ActionLink转换为HTML按钮
我有如下所示的ActionLinks:\n
@Html.ActionLink("设置", "RedirectToSettings", new { locationId = item.LocationId })
\n但我想将其变成一个按钮,而不仅仅是可点击的文本。无论是使整个单元格可点击还是添加按钮元素。\n我查看了其他类似的问题,如HTML按钮调用MVC控制器和操作方法,但我没有找到如何使其工作的方法。\n我尝试直接将其变成一个按钮,并使用`input`:\n
\n我能够得到按钮,但点击它不会将我重定向到控制器中指定的\"RedirectToSettings\"页面。\n
public ActionResult RedirectToSettings(int locationId) { // 使用locationId进行操作 return RedirectToAction("StationSettings"); }
\n按钮:\n\n如何使其工作?非常感谢任何帮助!\n更新:\n使用`Html.BeginForm`解决了问题,感谢Serge的建议。\n
@using (Html.BeginForm("RedirectToSettings", "Configs", new { locationId = item.LocationId })) { }
问题出现的原因是在HTML按钮中使用ActionLink时,locationId的值没有被正确设置。解决方法是将routevalues参数放置在BeginForm声明中。以下是解决问题的完整代码:
@using (Html.BeginForm("RedirectToSettings", "Settings", new { locationId = item.LocationId })) { }
通过将locationId作为routevalues参数传递给BeginForm方法,可以确保它的值被正确设置。这样就能够正常使用ActionLink生成HTML按钮,并正确地将locationId传递给相关的控制器方法。感谢Serge的指导,帮助解决了这个问题。