我有一个网站有两个形式,一个为inHole和其他表面。表单是相同的,但是我想知道用户在哪里单击了,这样我就可以在控制器中为我的SureyLocationID赋值,这样我以后就可以在我的数据库中引用它,而不需要创建两个视图。有没有办法做到这一点?
发布于 2019-12-23 23:33:27
在MVC视图中有一个按钮或锚标记,如下所示:
<a href='@Url.Action("YOUR_ACTION_NAME", "YOUR_CONTROLLER_NAME", new { comingFromInHole = true } )'>NAME_FOR_THIS_ELEMENT</a>或
<input type="button"
onclick="location.href='@Url.Action("YOUR_ACTION_NAME", "YOUR_CONTROLLER_NAME", new { comingFromInHole = true} )'"
value="NAME_FOR_THIS_ELEMENT"/>在你的MVC控制器中:
public IActionResult YOUR_ACTION_NAME(bool comingFromInHole)
{
if (comingFromInHole)
{
// logic related coming from hole
}
else
{
// Logic related to surface
}
}如果您不想使用布尔值true或false,那么您可以使用枚举(或自定义的type..etc)并使用它:
public enum Types {InHole, Surface };则控制器操作签名将更改为接受类型枚举
public IActionResult YOUR_ACTION_NAME(Types type)并修改您的按钮或锚点链接,将枚举类型发送给控制器,如下所示:
<a href='@Url.Action("YOUR_ACTION_NAME", "YOUR_CONTROLLER_NAME", new { Types=HomeController.Types.InHole} )'>NAME_FOR_THIS_ELEMENT</a>https://stackoverflow.com/questions/59457086
复制相似问题