首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据所单击的链接为控制器赋值

根据所单击的链接为控制器赋值
EN

Stack Overflow用户
提问于 2019-12-23 22:38:29
回答 2查看 51关注 0票数 0

我有一个网站有两个形式,一个为inHole和其他表面。表单是相同的,但是我想知道用户在哪里单击了,这样我就可以在控制器中为我的SureyLocationID赋值,这样我以后就可以在我的数据库中引用它,而不需要创建两个视图。有没有办法做到这一点?

EN

Stack Overflow用户

发布于 2019-12-23 23:33:27

在MVC视图中有一个按钮或锚标记,如下所示:

代码语言:javascript
运行
复制
<a href='@Url.Action("YOUR_ACTION_NAME", "YOUR_CONTROLLER_NAME", new { comingFromInHole = true }  )'>NAME_FOR_THIS_ELEMENT</a>

代码语言:javascript
运行
复制
<input type="button" 
       onclick="location.href='@Url.Action("YOUR_ACTION_NAME", "YOUR_CONTROLLER_NAME", new { comingFromInHole = true} )'" 
       value="NAME_FOR_THIS_ELEMENT"/>

在你的MVC控制器中:

代码语言:javascript
运行
复制
public IActionResult YOUR_ACTION_NAME(bool comingFromInHole)
{
      if (comingFromInHole)
      {
          // logic related coming from hole 
      }
      else
      {
          // Logic related to surface
      } 
}

如果您不想使用布尔值true或false,那么您可以使用枚举(或自定义的type..etc)并使用它:

代码语言:javascript
运行
复制
public enum Types {InHole, Surface };

则控制器操作签名将更改为接受类型枚举

代码语言:javascript
运行
复制
public IActionResult YOUR_ACTION_NAME(Types type)

并修改您的按钮或锚点链接,将枚举类型发送给控制器,如下所示:

代码语言:javascript
运行
复制
<a href='@Url.Action("YOUR_ACTION_NAME", "YOUR_CONTROLLER_NAME", new { Types=HomeController.Types.InHole}   )'>NAME_FOR_THIS_ELEMENT</a>
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59457086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档